Function at 0x453d60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5c3816
mov eax, dword fs:[0]
push eax
sub esp, 0x414
push ebx
push ebp
push esi
push edi
mov eax, dword [0x63727c]
xor eax, esp
push eax
lea eax, [esp + 0x428]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [sym.imp.soui.dll_public:_class_SOUI::SWindow____thiscall_SOUI::SWindow::FindChildByName_wchar_t_const___int_]
push 0xffffffffffffffff
lea edi, [ebx + 4]
push 0x5d4b74
mov ecx, edi
call esi
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
call dword [sym.imp.soui.dll_public:_class_SOUI::CRect___thiscall_SOUI::SWindow::GetWindowRect_void_]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x24]
push ecx
lea ecx, [ebx + 0x23c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::CSimpleWnd::ClientToScreen_struct_tagPOINT__const]
lea ecx, [esp + 0x70]
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SMenuEx::constructor_void_]
push 0xffffffffffffffff
xor ebp, ebp
push 0x5d35c0
mov ecx, edi
mov dword [esp + 0x438], ebp
mov dword [ebx + 0x588], ebp
call fcn.00433fc0
cmp eax, ebp
je 0x4540e1
mov ecx, eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::STabCtrl::GetCurSel_void_]
test eax, eax
jne 0x4540cb
mov edx, dword [ebx + 0x248]
push edx
push str.SMENU:XML_MENUEX_SHOW_TYPE
lea ecx, [esp + 0x78]
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SMenuEx::LoadMenuW_wchar_t_const___struct_HWND____]
push 1
lea ecx, [esp + 0x74]
call dword [sym.imp.soui.dll_public:_class_SOUI::SMenuExItem____thiscall_SOUI::SMenuEx::GetMenuItem_int_]
mov edi, eax
push 0xffffffffffffffff
push 0x5d4b1c
mov ecx, edi
mov dword [esp + 0x40], edi
call esi
push 0xffffffffffffffff
push 0x5d4afc
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x5d4ae8
mov ecx, edi
mov dword [esp + 0x3c], eax
call esi
call fcn.005400b4
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x453e77
push 0x80004005
call fcn.00401020
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x1e]
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x438], 1
call fcn.0041e830
lea eax, [esp + 0x40]
lea ecx, [ebx + 0x4c4]
push eax
mov byte [esp + 0x434], 2
call fcn.00422800
mov ecx, dword [esp + 0x58]
mov edi, dword [ecx]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebp
lea esp, [esp]
mov esi, dword [esp + 0x58]
test ebp, ebp
je 0x453ede
cmp ebp, dword [esp + 0x40]
je 0x453ee3
call fcn.00585229
cmp edi, esi
je 0x454000
test ebp, ebp
jne 0x453fe4
call fcn.00585229
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x453f04
call fcn.00585229
mov eax, dword [edi + 0x14]
xor ecx, ecx
lea esp, [esp]
mov edx, 1
shl edx, cl
test eax, edx
jne 0x453fec
inc ecx
cmp ecx, 0x20
jl 0x453f10
or esi, 0xffffffff
test ebp, ebp
jne 0x453ff3
call fcn.00585229
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x453f41
call fcn.00585229
mov eax, dword [edi + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [ebx + 0x4c4]
call fcn.0041dc20
mov edx, dword [eax]
push edx
lea eax, [esi + 0xf00000]
push eax
push esi
lea ecx, [esp + 0x20]
push str._check_skin_skin_btn_checks_png__name_check_show_type__d__id__d__pos_5__5__class_check_normal___s__check_
push ecx
mov byte [esp + 0x444], 3
call fcn.004096d0
add esp, 0x14
lea ecx, [esp + 0x3c]
mov byte [esp + 0x430], 2
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
push edx
call dword [sym.imp.soui.dll_public:_class_SOUI::SWindow____thiscall_SOUI::SWindow::CreateChildren_wchar_t_const__]
mov esi, eax
test ebp, ebp
jne 0x453ffb
call fcn.00585229
cmp edi, dword [ebp + 0x18]
jne 0x453fb0
call fcn.00585229
mov eax, dword [ebx + 0x554]
and eax, dword [edi + 0x14]
mov ecx, esi
push eax
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SWindow::SetCheck_int_]
push 0
push 1
mov ecx, esi
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SWindow::SetVisible_int__int_]
lea ecx, [esp + 0x2c]
call fcn.004195b0
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
jmp 0x453ed0
mov eax, dword [ebp]
jmp 0x453efa
mov esi, ecx
jmp 0x453f28
mov eax, dword [ebp]
jmp 0x453f37
mov ebp, dword [ebp]
jmp 0x453fa6
mov eax, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
lea edx, [ecx*4 + 0x69]
push edx
lea eax, [esp + 0x18]
push 0x5d11e0
push eax
call fcn.004096d0
mov esi, dword [esp + 0x20]
add esp, 0xc
push esi
lea ecx, [esp + 0x24]
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
push str.height
lea ecx, [esp + 0x20]
mov byte [esp + 0x434], 4
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::constructor_wchar_t_const__]
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
push 0
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
mov byte [esp + 0x43c], 5
call edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x430], 4
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
lea ecx, [esp + 0x20]
mov byte [esp + 0x430], 2
call dword [sym.imp.utilities.dll_public:_void___thiscall_SOUI::TStringT_wchar_t__struct_SOUI::wchar_traits_::destructor_void_]
mov ecx, edi
call dword [sym.imp.soui.dll_public:_void___thiscall_SOUI::SWindow::RequestRelayout_void_]
lea ecx, [esp + 0x40]
mov byte [esp + 0x430], 1
call fcn.00420f70
lea eax, [esi - 0x10]
mov byte [esp + 0x430], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4540e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4540e1
mov ecx, dword [ebx + 0x248]
push ecx
push str.SMENU:XML_MENUEX_SHOW_TYPE_NO_CLASS
lea ecx, [esp + 0x78]
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::SMenuEx::LoadMenuW_wchar_t_const___struct_HWND____]
mov edx, dword [ebx + 0x248]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov esi, dword [ebx + 0x554]
push 0x64
push edx
push eax
push ecx
push 0
lea ecx, [esp + 0x84]
call dword [sym.imp.soui.dll_public:_unsigned_int___thiscall_SOUI::SMenuEx::TrackPopupMenu_unsigned_int__int__int__struct_HWND_____int_]
mov dword [ebx + 0x3b4], 0
cmp esi, dword [ebx + 0x554]
je 0x454126
push 1
push 1
mov ecx, ebx
call fcn.00453630
lea ecx, [esp + 0x70]
mov dword [esp + 0x430], 0xffffffff
call dword [sym.imp.soui.dll_public_virtual:_void___thiscall_SOUI::SMenuEx::destructor_void_]
mov ecx, dword [esp + 0x428]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x420
ret