Function at 0x40d376
Capabilities:
Hide graphical window

Disassembly:
mov eax, 0x43c3a0
call fcn.0043a940
sub esp, 0xe8
and dword [ebp - 0x10], 0
push ebx
push esi
push edi
mov ecx, 0x456350
call fcn.00436139
mov ecx, 0x456918
call fcn.00436139
mov ecx, 0x4563b8
call fcn.00436139
mov ebx, 0x456480
mov ecx, ebx
call fcn.0042c36a
push dword [ebp + 8]
call sub.MFC42u.DLL_CWnd::FromHandle
push 0x8c
mov edi, eax
push dword [ebp + 8]
call fcn.00431eca
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
pop ecx
pop ecx
push 0x448
push dword [ebp + 8]
call esi
push eax
call fcn.0040f081
mov dword [esp], 0x44d
push dword [ebp + 8]
call esi
push eax
call fcn.0040f081
mov dword [esp], str.SO_PIN:
lea eax, [ebp - 0x58]
push 0x7559
push eax
call fcn.00431e3b
and dword [ebp - 4], 0
push str.New_SO_PIN:
lea eax, [ebp - 0x70]
push 0x7557
push eax
call fcn.00431e3b
push str.New_user_PIN:
lea eax, [ebp - 0x4c]
push 0x755a
push eax
mov byte [ebp - 4], 1
call fcn.00431e3b
push str.Old_SO_PIN:
lea eax, [ebp - 0x64]
push 0x7556
push eax
mov byte [ebp - 4], 2
call fcn.00431e3b
add esp, 0x30
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call sub.MFC42u.DLL_CString::CString
mov ecx, 0x456b58
mov byte [ebp - 4], 4
call fcn.00438f13
test al, al
jne 0x40d481
mov ecx, 0x456b58
call fcn.00438ee0
test al, al
je 0x40d4b2
and dword [0x456884], 0
push 0
push 0x44d
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::EnableWindow
push 0
push 0x44d
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
cmp byte [0x456adc], 0
jne 0x40d4ec
and dword [0x456884], 0
push 0
push 0x44d
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::EnableWindow
push 0
push 0x44d
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
cmp byte [0x456ae6], 0
jne 0x40d51f
push 0
push 0x448
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::EnableWindow
push 0
push 0x448
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
mov eax, dword [0x456894]
test eax, eax
jne 0x40d530
push 2
pop eax
mov dword [0x456894], eax
cmp dword [0x456890], eax
jge 0x40d53e
inc eax
mov dword [0x456890], eax
mov eax, dword [0x45688c]
test eax, eax
jne 0x40d54f
push 2
pop eax
mov dword [0x45688c], eax
cmp dword [0x456888], eax
jge 0x40d55d
inc eax
mov dword [0x456888], eax
push 0x441
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x456980
call fcn.0040f9a9
push 0x442
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x456420
call fcn.0040f9a9
push 0x443
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x4567f0
call fcn.0040f9a9
push 0x3f9
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x456350
call fcn.00435f88
push 0x405
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x456918
call fcn.00435f88
push 0x406
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x4563b8
call fcn.00435f88
push 0x444
push dword [ebp + 8]
call esi
push eax
mov ecx, 0x456330
call fcn.004101f4
mov eax, dword [0x4568f0]
push 0x445
push dword [ebp + 8]
mov dword [0x456334], 0xff
mov dword [0x456338], eax
call esi
push eax
mov ecx, 0x456310
call fcn.004101f4
mov eax, dword [0x4568f0]
push 0x446
push dword [ebp + 8]
mov dword [0x456314], 0xc0c0
mov dword [0x456318], eax
call esi
push eax
mov ecx, 0x456860
call fcn.004101f4
mov eax, dword [0x4568f0]
mov ecx, dword [0x45689c]
mov dword [0x456868], eax
mov eax, dword [0x45688c]
test eax, eax
mov dword [0x456864], 0xff00
mov dword [ebp - 0x28], 1
jle 0x40d67e
mov edx, ecx
sub edx, dword [0x456898]
sar edx, 1
cmp edx, eax
jge 0x40d67e
and dword [ebp - 0x28], 0
mov eax, dword [0x456888]
test eax, eax
jle 0x40d6ec
sub ecx, dword [0x456898]
sar ecx, 1
cmp ecx, eax
jle 0x40d6e7
push eax
lea eax, [ebp - 0x24]
push 0
push eax
mov ecx, 0x456898
call fcn.0040bc4d
mov ecx, 0x456898
mov byte [ebp - 4], 5
cmp eax, ecx
je 0x40d6c6
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x15]
push eax
push edx
push dword [ebp - 0x14]
call fcn.0040bdaa
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov byte [ebp - 4], 6
sar eax, 1
push eax
push dword [ebp - 0x24]
call fcn.0040acc0
mov eax, dword [0x456888]
mov byte [ebp - 4], 4
mov dword [0x456998], eax
mov eax, dword [0x456894]
mov ecx, dword [0x4568a8]
test eax, eax
jle 0x40d71f
mov edx, ecx
sub edx, dword [0x4568a4]
sar edx, 1
cmp edx, eax
jl 0x40d71b
mov edx, dword [0x4568b4]
sub edx, dword [0x4568b0]
sar edx, 1
cmp edx, eax
jge 0x40d71f
and dword [ebp - 0x28], 0
mov eax, dword [0x456890]
test eax, eax
jle 0x40d7fc
sub ecx, dword [0x4568a4]
sar ecx, 1
cmp ecx, eax
jle 0x40d78c
push eax
lea eax, [ebp - 0x24]
push 0
push eax
mov ecx, 0x4568a4
call fcn.0040bc4d
mov ecx, 0x4568a4
mov byte [ebp - 4], 7
cmp eax, ecx
je 0x40d76b
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x15]
push eax
push edx
push dword [ebp - 0x14]
call fcn.0040bdaa
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov byte [ebp - 4], 8
sar eax, 1
push eax
push dword [ebp - 0x24]
call fcn.0040acc0
mov eax, dword [0x456890]
mov byte [ebp - 4], 4
mov ecx, dword [0x4568b4]
mov dword [0x456438], eax
sub ecx, dword [0x4568b0]
sar ecx, 1
cmp ecx, eax
jle 0x40d7f7
push eax
lea eax, [ebp - 0x24]
push 0
push eax
mov ecx, 0x4568b0
call fcn.0040bc4d
mov ecx, 0x4568b0
mov byte [ebp - 4], 9
cmp eax, ecx
je 0x40d7d6
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x15]
push eax
push edx
push dword [ebp - 0x14]
call fcn.0040bdaa
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0xa
sar eax, 1
push eax
push dword [ebp - 0x24]
call fcn.0040acc0
mov eax, dword [0x456890]
mov byte [ebp - 4], 4
mov dword [0x456808], eax
push dword [ebp - 0x28]
mov ecx, edi
push 1
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::EnableWindow
cmp dword [0x456884], 0
je 0x40d9b1
mov eax, dword [0x4568c8]
mov ecx, dword [0x4568f8]
cmp eax, ecx
mov dword [ebp - 0x14], eax
ja 0x40d831
mov dword [ebp - 0x14], ecx
push 1
push 6
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [0x4568fc]
shl eax, 1
sub ecx, eax
add ecx, dword [0x4568cc]
push ecx
mov ecx, edi
push dword [ebp - 0x14]
push dword [0x4568c0]
push dword [0x4568c4]
call sub.MFC42u.DLL_CWnd::MoveWindow
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x456850
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetClientRect]
push 6
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [0x456854]
push 4
shl eax, 1
sub ecx, eax
mov eax, dword [0x4568cc]
add ecx, eax
mov dword [ebp - 0x14], ecx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [0x456854], ecx
mov ecx, ebx
call fcn.0042c343
mov ecx, ebx
call fcn.0042bf8e
push 0x456850
push edi
mov ecx, ebx
call fcn.0042bc92
mov ecx, ebx
call fcn.0042b781
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_UpdateWindow]
xor ebx, ebx
mov ecx, edi
push ebx
push 0x3f9
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 5
push 0x441
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push ebx
push 0x405
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 5
push 0x442
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push ebx
push 0x406
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 5
push 0x443
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
mov ecx, dword [0x45689c]
mov eax, dword [0x456898]
mov ebx, 0x456980
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov ecx, ebx
call fcn.0040fecf
mov ecx, dword [0x4568a8]
mov eax, dword [0x4568a4]
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov ecx, 0x456420
call fcn.0040fecf
mov ecx, dword [0x4568a8]
mov eax, dword [0x4568a4]
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov ecx, 0x4567f0
call fcn.0040fecf
push 1
mov ecx, ebx
call fcn.0041018d
jmp 0x40da81
mov ecx, ebx
call fcn.0042c343
push 1
mov ecx, edi
push dword [0x4568cc]
push dword [0x4568c8]
push dword [0x4568c0]
push dword [0x4568c4]
call sub.MFC42u.DLL_CWnd::MoveWindow
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ebx, 0x3f9
push 5
push ebx
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 0
push 0x441
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 5
push 0x405
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 0
push 0x442
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 5
push 0x406
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 0
push 0x443
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push ebx
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push dword [ebp + 8]
call fcn.0040c3b5
pop ecx
mov ebx, 0x456980
pop ecx
push 0
push 0x444
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 0
push 0x445
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
push 0
push 0x446
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::ShowWindow
mov ecx, ebx
mov dword [0x45641c], 0x3f9
call fcn.004101ab
xor ebx, ebx
mov ecx, 0x456420
push ebx
call fcn.0041018d
push ebx
mov ecx, 0x4567f0
call fcn.0041018d
cmp dword [0x4568e8], ebx
je 0x40db14
cmp dword [0x4568ec], ebx
je 0x40db48
push dword [ebp - 0x58]
mov ecx, edi
push 0x416
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push dword [ebp - 0x4c]
jmp 0x40db35
cmp dword [0x4568ec], ebx
je 0x40db48
push dword [ebp - 0x64]
mov ecx, edi
push 0x416
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push dword [ebp - 0x70]
push 0x417
mov ecx, edi
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push 0x455e48
lea ecx, [ebp - 0x2c]
call sub.MFC42u.DLL_CString::CString_3
push dword [0x4568f4]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
push 0x4504c0
push eax
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
mov ecx, edi
push dword [0x4568d0]
push 0x451
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
mov ebx, 0x469
mov ecx, edi
push ebx
call sub.MFC42u.DLL_CWnd::GetDlgItem
push 0
push 3
push 0xc5
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2c]
mov ecx, edi
push ebx
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push dword [0x4568dc]
mov ecx, edi
call sub.MFC42u.DLL_CWnd::SetWindowTextW
mov ebx, dword [ebp + 8]
push 0
push ebx
call fcn.0040c3b5
pop ecx
pop ecx
push 0
push 1
push ebx
call esi
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call edi
push 0
push 2
push ebx
call esi
push eax
call edi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiRect::constructor_void_]
lea eax, [ebp - 0x3c]
push eax
push 1
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x3c]
push eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_ScreenToClient]
call ebx
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call ebx
push 0x394
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov byte [ebp - 4], 0xc
je 0x40dc89
push 1
lea eax, [ebp - 0x24]
pop edi
push 0x4503ec
push edi
push eax
mov dword [ebp - 0x10], edi
call fcn.00431e3b
add esp, 0xc
mov eax, dword [eax]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0xd
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_unsigned_short_int_const___int_]
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push edi
push eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 4], 0xe
push eax
push str.ePassManager_2003_inner_btn.xml
call fcn.0040ecef
jmp 0x40dc8b
xor eax, eax
test byte [ebp - 0x10], 2
mov dword [0x4569dc], eax
mov dword [ebp - 4], 0xf
je 0x40dcad
and dword [ebp - 0x10], 0xfffffffd
lea ecx, [ebp - 0xf4]
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
test byte [ebp - 0x10], 1
mov dword [ebp - 4], 0xb
je 0x40dccd
and dword [ebp - 0x10], 0xfffffffe
cmp dword [ebp - 0x24], 0
je 0x40dccd
push dword [ebp - 0x24]
call sub.MFC42u.DLL_operatordelete
pop ecx
mov edi, 0x80000000
push 0
push edi
push edi
mov ecx, dword [0x4569dc]
push edi
push edi
push 0
push 0x56000000
push str.DuiButtons
push dword [ebp + 8]
call dword [sym.imp.FtUiKit_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::Create_struct_HWND_____unsigned_short_int_const___unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU____]
cmp dword [ebp - 0x28], 0
mov ecx, dword [0x4569dc]
mov eax, dword [ecx]
setne dl
push edx
call dword [eax + 0x9c]
lea ecx, [ebp - 0x3c]
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiRect::Empty_void_]
lea eax, [ebp - 0x3c]
push eax
push 2
push dword [ebp + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 8]
call ebx
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call ebx
push 0x394
call sub.MFC42u.DLL_operatornew
pop ecx
mov dword [ebp - 0x14], eax
xor esi, esi
mov byte [ebp - 4], 0x11
cmp eax, esi
je 0x40dda1
or dword [ebp - 0x10], 4
push str.Cancel
lea eax, [ebp - 0x24]
push 2
push eax
call fcn.00431e3b
add esp, 0xc
mov eax, dword [eax]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x12
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_unsigned_short_int_const___int_]
or dword [ebp - 0x10], 8
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push 2
push eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 4], 0x13
push eax
push str.ePassManager_2003_inner_btn.xml
call fcn.0040ecef
jmp 0x40dda3
xor eax, eax
test byte [ebp - 0x10], 8
mov dword [0x4569e0], eax
mov dword [ebp - 4], 0x14
je 0x40ddc5
and dword [ebp - 0x10], 0xfffffff7
lea ecx, [ebp - 0xf4]
call dword [sym.imp.FtUiKit_u.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
test byte [ebp - 0x10], 4
mov dword [ebp - 4], 0xb
je 0x40dde0
cmp dword [ebp - 0x24], esi
je 0x40dde0
push dword [ebp - 0x24]
call sub.MFC42u.DLL_operatordelete
pop ecx
push esi
push edi
push edi
mov ecx, dword [0x4569e0]
push edi
push edi
push esi
push 0x56000000
push str.DuiButtons
push dword [ebp + 8]
call dword [sym.imp.FtUiKit_u.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::Create_struct_HWND_____unsigned_short_int_const___unsigned_long_int__unsigned_long_int__int__int__int__int__struct_HMENU____]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.0043a33a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.0043a33a
cmp dword [ebp - 0x64], esi
je 0x40de25
push dword [ebp - 0x64]
call sub.MFC42u.DLL_operatordelete
pop ecx
cmp dword [ebp - 0x4c], esi
je 0x40de33
push dword [ebp - 0x4c]
call sub.MFC42u.DLL_operatordelete
pop ecx
cmp dword [ebp - 0x70], esi
je 0x40de41
push dword [ebp - 0x70]
call sub.MFC42u.DLL_operatordelete
pop ecx
cmp dword [ebp - 0x58], esi
pop edi
pop esi
pop ebx
je 0x40de52
push dword [ebp - 0x58]
call sub.MFC42u.DLL_operatordelete
pop ecx
mov ecx, dword [ebp - 0xc]
push 1
pop eax
mov dword fs:[0], ecx
leave
ret