Function at 0x4075a0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x41d175
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll__mbscmp]
push ebp
push esi
push edi
mov edi, dword [esp + 0xd8]
xor ebp, ebp
mov esi, ecx
cmp edi, ebp
mov dword [esp + 0x10], ebp
jne 0x4075ee
lea eax, [esi + 0x15c]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
cmp dword [eax - 8], ebp
jne 0x40762c
jmp 0x408527
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
test eax, eax
lea eax, [esi + 0x15c]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
je 0x40761d
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
cmp eax, edi
jne 0x40762c
jmp 0x408527
push edi
push eax
call ebx
add esp, 8
test eax, eax
je 0x408527
mov ecx, esi
call fcn.00406960
test eax, eax
jne 0x40769b
mov ecx, dword [esi + 0x158]
lea edi, [esi + 0x158]
cmp dword [ecx - 8], ebp
jne 0x407669
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x80000
je 0x40765d
push 0x426234
jmp 0x407662
push 0x426230
mov ecx, edi
call fcn.0041c08a
mov edi, dword [edi]
push 0x426234
push edi
call ebx
add esp, 8
test eax, eax
jne 0x40769b
cmp esi, ebp
jne 0x407682
xor edi, edi
jmp 0x407685
mov edi, dword [esi + 0x20]
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
or eax, 0x80000
push eax
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov edx, dword [esi + 0x20]
mov ebx, dword [sym.imp.USER32.dll_GetSystemMenu]
push ebp
push edx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
lea edi, [eax - 1]
cmp edi, ebp
jl 0x407750
lea ecx, [edi + 1]
mov dword [esp + 0x14], ecx
mov edx, dword [esi + 0x20]
push ebp
push edx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov eax, dword [eax + 4]
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenuItemID]
cmp eax, 0xf200
je 0x4076fd
cmp eax, 0xf210
je 0x4076fd
cmp eax, 0xf220
je 0x4076fd
cmp eax, ebp
jne 0x40773e
jmp 0x407701
cmp eax, ebp
jne 0x407721
mov ecx, dword [esi + 0x20]
push ebp
push ecx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 4]
push edx
push eax
call dword [sym.imp.USER32.dll_GetMenuItemID]
cmp eax, ebp
jne 0x40773e
mov ecx, dword [esi + 0x20]
push ebp
push ecx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov edx, dword [eax + 4]
push 0x400
push edi
push edx
call dword [sym.imp.USER32.dll_DeleteMenu]
mov ecx, dword [esp + 0x14]
dec edi
dec ecx
cmp edi, ebp
mov dword [esp + 0x14], ecx
jge 0x4076ca
cmp dword [esp + 0xd8], ebp
jne 0x4078ff
cmp dword [esi + 0x70], ebp
je 0x4078d3
push ebp
mov ecx, esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call sub.MFC42.DLL_CWnd::GetStyle
push eax
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0xa8]
mov edi, dword [esi + 0xa4]
mov ebx, dword [esp + 0x18]
sub eax, ecx
mov ecx, dword [esi + 0xac]
add edi, ebx
mov ebx, dword [esi + 0xa0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
add ebx, eax
mov eax, dword [esp + 0x24]
sub eax, ecx
push 0xffffffffffffffff
mov dword [esp + 0x18], eax
mov eax, 1
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], eax
mov eax, 0xffffff
push ebp
lea ecx, [esi + 0xc4]
mov dword [esi + 0x70], ebp
neg edi
neg ebx
mov dword [esi + 0x7c], ebp
mov dword [esi + 0x80], ebp
mov dword [esi + 0x84], ebp
mov dword [esi + 0x88], ebp
mov dword [esi + 0x94], ebp
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], ebp
mov dword [esi + 0xa0], ebp
mov dword [esi + 0xa4], ebp
mov dword [esi + 0xa8], ebp
mov dword [esi + 0xac], ebp
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xb4], ebp
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
mov dword [esi + 0xc0], eax
call fcn.00409390
cmp edi, ebp
jne 0x40785e
cmp dword [esp + 0x10], ebp
jne 0x40785e
cmp ebx, ebp
jne 0x40785e
cmp dword [esp + 0x14], ebp
je 0x4078d3
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x80]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [esp + 0x80], ebp
jg 0x407881
push ebp
mov ecx, esi
call sub.MFC42.DLL_CWnd::CenterWindow
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x80]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x14]
sub edx, eax
add edx, ecx
mov ecx, dword [esp + 0x80]
add edx, ebx
push 4
push edx
mov edx, dword [esp + 0x90]
sub edx, ecx
sub eax, ebx
add edx, dword [esp + 0x18]
sub ecx, edi
add edx, edi
push edx
push eax
push ecx
push ebp
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetWindowPos
mov eax, dword [esi + 0x20]
push 1
push ebp
push eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
push ebp
mov ecx, esi
call sub.MFC42.DLL_CWnd::ShowWindow
push 5
mov ecx, esi
call sub.MFC42.DLL_CWnd::ShowWindow
mov ecx, dword [esp + 0x2c]
call sub.MFC42.DLL_CString::Empty
jmp 0x408527
lea edi, [esi + 0x70]
mov eax, 1
push 0xffffffffffffffff
push ebp
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov eax, 0xffffff
lea ecx, [edi + 0x54]
mov dword [edi], ebp
mov dword [edi + 0xc], ebp
mov dword [edi + 0x10], ebp
mov dword [edi + 0x14], ebp
mov dword [edi + 0x18], ebp
mov dword [edi + 0x24], ebp
mov dword [edi + 0x28], ebp
mov dword [edi + 0x2c], ebp
mov dword [edi + 0x30], ebp
mov dword [edi + 0x34], ebp
mov dword [edi + 0x38], ebp
mov dword [edi + 0x3c], ebp
mov dword [edi + 0x40], ebp
mov dword [edi + 0x44], ebp
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
call fcn.00409390
mov ebx, dword [esp + 0xd8]
lea edx, [esi + 0x74]
push edi
push edx
lea ecx, [esi + 0x60]
push ebx
call fcn.00419a40
test eax, eax
je 0x408034
push 0x400
lea ecx, [esp + 0xa4]
mov dword [esp + 0x34], ebp
call sub.MFC42.DLL_CMemFile::CMemFile
lea ecx, [esp + 0x70]
mov dword [esp + 0xd0], ebp
call sub.MFC42.DLL_CFile::CFile
push 0x104
push ebx
mov byte [esp + 0xd8], 1
call dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
test eax, eax
je 0x407a91
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 0xc]
push 2
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ebx, eax
cmp ebx, ebp
jne 0x4079cc
mov dword [edi], ebp
jmp 0x40800c
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 0xc]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebp, eax
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 0xc]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov byte [esp + 0x18], 0x42
add ebx, 0xe
mov byte [esp + 0x19], 0x4d
mov eax, ebx
mov ecx, ebx
mov edx, ebx
push ebx
shr eax, 8
shr ecx, 0x10
shr edx, 0x14
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], al
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], dl
mov byte [esp + 0x22], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], 0x36
mov byte [esp + 0x27], 0
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0
call sub.MFC42.DLL_operatornew
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x30], eax
push 0
push ebx
push eax
call sub.MFC42.DLL_CMemFile::Attach
lea eax, [esp + 0x18]
push 0xe
push eax
lea ecx, [esp + 0xa8]
call sub.MFC42.DLL_CMemFile::Write
add ebx, 0xfffffff2
lea ecx, [esp + 0xa0]
push ebx
push ebp
call sub.MFC42.DLL_CMemFile::Write
lea ebp, [esp + 0xa0]
jmp 0x407b8d
push ebx
mov ecx, esi
call fcn.00419520
test eax, eax
je 0x407aa5
mov eax, ebx
mov ebx, dword [esp + 0x10]
jmp 0x407adf
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call fcn.004069b0
mov dword [esp + 0x10], 1
push ebx
lea edx, [esp + 0x38]
push eax
push edx
mov byte [esp + 0xdc], 2
call sub.MFC42.DLL_operator
mov ebx, 3
mov dword [esp + 0x10], ebx
mov eax, dword [eax]
mov dword [esp + 0xd0], ebx
push eax
lea ecx, [esp + 0x18]
call fcn.0041befe
test bl, 2
mov dword [esp + 0xd0], 6
je 0x407b09
and ebx, 0xfffffffd
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], ebx
call sub.MFC42.DLL_CString::CString
test bl, 1
mov dword [esp + 0xd0], 5
je 0x407b22
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x14]
push ebp
push ebp
push eax
lea ecx, [esp + 0x7c]
call sub.MFC42.DLL_CFile::Open
test eax, eax
jne 0x407b78
lea ecx, [esp + 0x14]
mov dword [edi], ebp
mov byte [esp + 0xd0], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x70]
mov byte [esp + 0xd0], 0
call fcn.0041c228
lea ecx, [esp + 0xa0]
mov dword [esp + 0xd0], 0xffffffff
call fcn.0041c222
xor eax, eax
jmp 0x40852c
lea ecx, [esp + 0x14]
lea ebp, [esp + 0x70]
mov byte [esp + 0xd0], 1
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
lea ecx, [esp + 0x38]
push ecx
push 0x18
mov edx, dword [eax + 4]
push edx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x3c]
mov ecx, eax
and ecx, 0x80000001
jns 0x407bb3
dec ecx
or ecx, 0xfffffffe
inc ecx
cmp ecx, 1
jne 0x407e6b
lea edx, [esp + 0x10]
lea ebx, [esi + 0x60]
push edx
push eax
push ecx
push ebp
mov ecx, ebx
call fcn.00419860
test eax, eax
je 0x408006
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x7c], eax
push ecx
push edx
push 2
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x80], eax
push ecx
push edx
push 3
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x84], eax
push ecx
push edx
push 4
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x8c], eax
push ecx
push edx
push 0xb
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x88], eax
push ecx
push edx
push 0xc
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x90], eax
push ecx
push edx
push 0xd
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x94], eax
push ecx
push edx
push 0x15
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0x9c], eax
push ecx
push edx
push 0x16
push ebp
mov ecx, ebx
call fcn.00419860
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x10]
push ecx
push edx
push 0x17
push ebp
mov ecx, ebx
mov dword [esi + 0xa0], eax
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xa4], eax
push ecx
push edx
push 0x18
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xa8], eax
push ecx
push edx
push 0x19
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xac], eax
push ecx
push edx
push 0x1f
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xb0], eax
push ecx
push edx
push 0x20
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xb8], eax
push ecx
push edx
push 0x21
push ebp
mov ecx, ebx
call fcn.00419860
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov dword [esi + 0xc0], eax
push ecx
push edx
push 0x22
push ebp
mov ecx, ebx
call fcn.00419860
mov eax, dword [esp + 0x10]
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0x184]
test eax, eax
je 0x407e6b
xor edi, edi
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x10]
push ecx
lea eax, [edi + 0x29]
push edx
push eax
push ebp
mov ecx, ebx
call fcn.00419860
mov eax, dword [esp + 0x10]
test edi, edi
jne 0x407ddd
test eax, eax
je 0x407e6b
mov edi, dword [esp + 0x14]
cmp eax, 0xff
je 0x407e2f
cmp eax, 0xff00
je 0x407e2f
cmp eax, 0xff0000
je 0x407e2f
cmp eax, 0xffff
je 0x407e2f
cmp eax, 0xff00ff
je 0x407e2f
cmp eax, 0xffff00
je 0x407e2f
cmp eax, 0xf
je 0x407e2f
cmp eax, 0xf00
je 0x407e2f
cmp eax, 0xf0000
je 0x407e2f
cmp eax, 0xf0f
je 0x407e2f
cmp eax, 0xf000f
je 0x407e2f
cmp eax, 0xf0f00
jne 0x407e5d
lea edi, [esi + 0xc4]
mov dword [esp + 0x28], eax
push 0xffffffffffffffff
mov ecx, edi
mov eax, dword [edi + 8]
mov dword [esp + 0x38], eax
inc eax
push eax
call fcn.00409390
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov dword [ecx + eax*4], edx
inc edi
cmp edi, 6
mov dword [esp + 0x14], edi
jl 0x407db3
mov ecx, dword [esp + 0xd8]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
test eax, eax
jne 0x407e8b
lea ecx, [esp + 0x70]
call sub.MFC42.DLL_CFile::Close
mov eax, dword [esp + 0x30]
xor ebx, ebx
cmp eax, ebx
je 0x407e9e
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x9c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, ebx
mov dword [esi + 0x98], eax
jne 0x407ebd
mov dword [esi + 0x9c], eax
cmp dword [esi + 0xa0], ebx
jne 0x407f2d
cmp dword [esi + 0xa4], ebx
jne 0x407f2d
cmp dword [esi + 0xa8], ebx
jne 0x407f2d
cmp dword [esi + 0xac], ebx
jne 0x407f2d
push ebx
mov ecx, esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
call sub.MFC42.DLL_CWnd::GetStyle
lea edx, [esp + 0x64]
push eax
push edx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
neg eax
mov dword [esi + 0xa0], eax
mov eax, dword [esp + 0x6c]
neg ecx
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x9c]
sub eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, dword [esi + 0xb0]
sar ecx, 2
cmp eax, ebx
mov dword [esi + 0xb4], ecx
jne 0x407f5a
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xb8]
mov edi, 0xffffff
cmp eax, edi
jne 0x407f73
mov dword [esi + 0xb8], 2
cmp dword [esi + 0xc0], edi
jne 0x407f8f
mov eax, dword [esi + 0xa0]
sub eax, ecx
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0xc0], eax
cmp dword [esi + 0xbc], edi
jne 0x407fa3
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xbc], ecx
cmp dword [esi + 0xcc], ebx
jne 0x4080f8
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0xc00000
je 0x40835e
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x80000
je 0x40835e
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x20000
je 0x40803b
mov ebx, dword [esi + 0xcc]
lea edi, [esi + 0xc4]
push 0xffffffffffffffff
mov ecx, edi
lea edx, [ebx + 1]
push edx
call fcn.00409390
mov eax, dword [edi + 4]
mov dword [eax + ebx*4], 0xff
jmp 0x40806c
mov dword [edi], 0
lea ecx, [esp + 0x70]
mov byte [esp + 0xd0], 0
call fcn.0041c228
lea ecx, [esp + 0xa0]
mov dword [esp + 0xd0], 0xffffffff
call fcn.0041c222
xor eax, eax
jmp 0x40852c
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x10000
je 0x40806c
mov ebx, dword [esi + 0xcc]
lea edi, [esi + 0xc4]
push 0xffffffffffffffff
lea ecx, [ebx + 1]
push ecx
mov ecx, edi
call fcn.00409390
mov edx, dword [edi + 4]
mov dword [edx + ebx*4], 0xf
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x10000
je 0x40809f
mov ebx, dword [esi + 0xcc]
lea edi, [esi + 0xc4]
push 0xffffffffffffffff
mov ecx, edi
lea eax, [ebx + 1]
push eax
call fcn.00409390
mov ecx, dword [edi + 4]
mov dword [ecx + ebx*4], 0xff00
jmp 0x4080d0
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x20000
je 0x4080d0
mov ebx, dword [esi + 0xcc]
lea edi, [esi + 0xc4]
push 0xffffffffffffffff
mov ecx, edi
lea edx, [ebx + 1]
push edx
call fcn.00409390
mov eax, dword [edi + 4]
mov dword [eax + ebx*4], 0xf00
mov ebx, dword [esi + 0xcc]
lea edi, [esi + 0xc4]
push 0xffffffffffffffff
lea ecx, [ebx + 1]
push ecx
mov ecx, edi
call fcn.00409390
mov edx, dword [edi + 4]
mov dword [edx + ebx*4], 0xff0000
jmp 0x40835e
mov eax, dword [esi + 0x20]
mov ebx, dword [sym.imp.USER32.dll_GetSystemMenu]
xor edi, edi
push edi
push eax
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov ecx, dword [eax + 4]
mov ebp, dword [sym.imp.USER32.dll_GetMenuItemCount]
push ecx
call ebp
test eax, eax
jle 0x408153
mov edx, dword [esi + 0x20]
push 0
push edx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov eax, dword [eax + 4]
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenuItemID]
test eax, eax
je 0x408153
mov ecx, dword [esi + 0x20]
push 0
push ecx
inc edi
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov edx, dword [eax + 4]
push edx
call ebp
cmp edi, eax
jl 0x40811d
test esi, esi
mov dword [esp + 0x28], edi
jne 0x40815f
xor ebp, ebp
jmp 0x408162
mov ebp, dword [esi + 0x20]
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
and eax, 0xfffcffff
or eax, 0xc80000
push eax
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [esi + 0x20]
push 0
push eax
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov ecx, dword [eax + 4]
push 1
push 0xf060
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esi + 0xcc]
mov dword [esp + 0x10], 0
test eax, eax
jle 0x40835e
mov ebp, dword [sym.imp.USER32.dll_InsertMenuA]
mov edx, dword [esi + 0xc8]
mov eax, dword [esp + 0x10]
cmp dword [edx + eax*4], 0xff
jne 0x408200
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x20000
jne 0x408200
test esi, esi
jne 0x4081e1
xor ebp, ebp
jmp 0x4081e4
mov ebp, dword [esi + 0x20]
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
or eax, 0x20000
push eax
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ebp, dword [sym.imp.USER32.dll_InsertMenuA]
mov ecx, dword [esi + 0xc8]
mov edx, dword [esp + 0x10]
cmp dword [ecx + edx*4], 0xff00
jne 0x408248
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
test eax, 0x10000
jne 0x408248
test esi, esi
jne 0x408229
xor ebp, ebp
jmp 0x40822c
mov ebp, dword [esi + 0x20]
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
or eax, 0x10000
push eax
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ebp, dword [sym.imp.USER32.dll_InsertMenuA]
mov eax, dword [esi + 0xc8]
mov ecx, dword [esp + 0x10]
cmp dword [eax + ecx*4], 0xff0000
jne 0x40827a
mov edx, dword [esi + 0x20]
push 0
push edx
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov eax, dword [eax + 4]
push 0
push 0xf060
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov ecx, dword [esi + 0xc8]
mov edx, dword [esp + 0x10]
cmp dword [ecx + edx*4], 0xffff
jne 0x4082b2
mov eax, dword [esi + 0x20]
push 0
push eax
inc edi
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov ecx, dword [eax + 4]
push 0x426220
push 0xf200
push 0x400
push edi
push ecx
call ebp
mov edx, dword [esi + 0xc8]
mov eax, dword [esp + 0x10]
cmp dword [edx + eax*4], 0xff00ff
jne 0x4082ea
mov ecx, dword [esi + 0x20]
push 0
push ecx
inc edi
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov edx, dword [eax + 4]
push 0x426210
push 0xf210
push 0x400
push edi
push edx
call ebp
mov eax, dword [esi + 0xc8]
mov ecx, dword [esp + 0x10]
cmp dword [eax + ecx*4], 0xffff00
jne 0x408322
mov edx, dword [esi + 0x20]
push 0
push edx
inc edi
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov eax, dword [eax + 4]
push 0x426200
push 0xf220
push 0x400
push edi
push eax
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xcc]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4081b8
cmp edi, dword [esp + 0x28]
je 0x40835e
mov ecx, dword [esi + 0x20]
push 0
push ecx
inc edi
call ebx
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov edx, dword [eax + 4]
push 0
push 0
push 0x400
push edi
push edx
call ebp
mov ecx, esi
call fcn.00406960
test eax, eax
jne 0x40838a
test esi, esi
jne 0x408371
xor edi, edi
jmp 0x408374
mov edi, dword [esi + 0x20]
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
and eax, 0xfff7ffff
push eax
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x50]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x90]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x90]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CWnd::ClientToScreen
mov edi, dword [esi + 0xa4]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esi + 0xa8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x94]
sub edi, ebx
mov ebx, dword [esp + 0x98]
sub ebp, eax
mov eax, dword [esi + 0xa0]
mov ecx, dword [esp + 0x50]
add ebp, ebx
mov ebx, dword [esp + 0x54]
sub ebx, edx
mov edx, dword [esp + 0x5c]
add ebx, eax
mov eax, dword [esi + 0xac]
sub eax, edx
mov edx, dword [esp + 0x9c]
add edi, ecx
add eax, edx
test edi, edi
mov dword [esp + 0x30], eax
jne 0x408433
test ebp, ebp
jne 0x408433
test ebx, ebx
jne 0x408433
test eax, eax
jne 0x408433
push ebx
mov ecx, esi
call fcn.00408550
mov edx, dword [esi + 0x20]
push 1
push ebx
push edx
jmp 0x40848a
test ecx, ecx
jg 0x408440
push 0
mov ecx, esi
call sub.MFC42.DLL_CWnd::CenterWindow
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x50]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
sub edx, eax
add edx, ecx
mov ecx, dword [esp + 0x50]
add edx, ebx
push 4
push edx
mov edx, dword [esp + 0x60]
sub edx, ecx
sub eax, ebx
add edx, ebp
sub ecx, edi
add edx, edi
push edx
push eax
push ecx
push 0
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetWindowPos
mov eax, dword [esi + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4084ca
lea ecx, [esi + 0x18c]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esi + 0x194]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esi + 0x19c]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esi + 0x1a4]
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov ecx, esi
call fcn.00406a90
mov esi, dword [esp + 0xd8]
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
test eax, eax
push esi
je 0x4084f6
mov ecx, dword [esp + 0x30]
push 0x426118
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
jmp 0x4084ff
mov ecx, dword [esp + 0x30]
call fcn.0041c08a
lea ecx, [esp + 0x70]
mov byte [esp + 0xd0], 0
call fcn.0041c228
lea ecx, [esp + 0xa0]
mov dword [esp + 0xd0], 0xffffffff
call fcn.0041c222
mov eax, 1
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xc4
ret 4