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

Disassembly:
push 0xffffffffffffffff
push 0x5c35f6
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 0x5d4b54
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 0x5d359c
mov ecx, edi
mov dword [esp + 0x438], ebp
mov dword [ebx + 0x588], ebp
call fcn.00433fa0
cmp eax, ebp
je 0x453fc1
mov ecx, eax
call dword [sym.imp.soui.dll_public:_int___thiscall_SOUI::STabCtrl::GetCurSel_void_]
test eax, eax
jne 0x453fab
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 0x5d4afc
mov ecx, edi
mov dword [esp + 0x40], edi
call esi
push 0xffffffffffffffff
push 0x5d4adc
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x5d4ac8
mov ecx, edi
mov dword [esp + 0x3c], eax
call esi
call fcn.0053fed4
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x453d57
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 0x453dbe
cmp ebp, dword [esp + 0x40]
je 0x453dc3
call fcn.00585049
cmp edi, esi
je 0x453ee0
test ebp, ebp
jne 0x453ec4
call fcn.00585049
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x453de4
call fcn.00585049
mov eax, dword [edi + 0x14]
xor ecx, ecx
lea esp, [esp]
mov edx, 1
shl edx, cl
test eax, edx
jne 0x453ecc
inc ecx
cmp ecx, 0x20
jl 0x453df0
or esi, 0xffffffff
test ebp, ebp
jne 0x453ed3
call fcn.00585049
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x453e21
call fcn.00585049
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 0x453edb
call fcn.00585049
cmp edi, dword [ebp + 0x18]
jne 0x453e90
call fcn.00585049
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 0x453db0
mov eax, dword [ebp]
jmp 0x453dda
mov esi, ecx
jmp 0x453e08
mov eax, dword [ebp]
jmp 0x453e17
mov ebp, dword [ebp]
jmp 0x453e86
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 0x453fc1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x453fc1
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 0x454006
push 1
push 1
mov ecx, ebx
call fcn.00453510
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