Function at 0x41e400
Capabilities:
Capture screenshot

Disassembly:
push 0xffffffffffffffff
push 0x45b34c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
xor eax, eax
push ebx
mov dword [esp + 0xac], eax
push ebp
mov ebp, dword [esp + 0xe8]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
xor ebx, ebx
mov dword [esp + 0xbc], eax
push esi
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 4]
cmp eax, ebx
push edi
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x14], ebx
jne 0x41e4a0
mov edi, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
mov esi, dword [esp + 0xec]
mov edx, dword [esp + 0xe4]
sub edi, ecx
mov ecx, dword [esp + 0xdc]
push ecx
sub esi, edx
call sub.MFC42u.DLL_CDC::FromHandle
mov edx, dword [eax + 4]
push esi
push edi
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, ebp
call sub.MFC42u.DLL_CGdiObject::Attach
cmp ebp, ebx
jne 0x41e4a8
xor esi, esi
jmp 0x41e4ab
mov esi, dword [ebp + 4]
lea ecx, [esp + 0x24]
call fcn.00456236
xor eax, eax
mov edi, dword [sym.imp.GDI32.dll_GetObjectW]
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x8c], eax
push ecx
mov dword [esp + 0x94], eax
push 0x18
mov dword [esp + 0x9c], eax
push esi
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x30], 0x461ba8
mov dword [esp + 0x90], ebx
mov dword [esp + 0xa4], eax
call edi
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ebx
call sub.MFC42u.DLL_CDC::FromHandle
cmp eax, ebx
jne 0x41e531
xor eax, eax
jmp 0x41e534
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x28]
call sub.MFC42u.DLL_CDC::Attach
cmp esi, ebx
je 0x41e557
mov edx, dword [esp + 0x28]
push esi
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x41e559
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xe8]
push 0xff0062
sub ecx, ebp
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
push ecx
push ebx
push ebx
push eax
mov dword [esp + 0xec], 1
mov dword [esp + 0x68], ecx
call dword [sym.imp.GDI32.dll_PatBlt]
mov ebp, dword [esp + 0xf4]
mov eax, dword [ebp + 4]
cmp eax, ebx
jne 0x41e6c5
mov eax, dword [0x4731f8]
cmp eax, ebx
je 0x41e5cc
mov ecx, dword [eax]
push eax
call dword [ecx + 0x54]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jne 0x41e5fc
mov dword [esp + 0x24], 0x461ba8
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd4], 2
cmp eax, ebx
je 0x41ebc3
mov edx, dword [esp + 0x28]
push eax
push edx
jmp 0x41ebbd
lea eax, [esp + 0x1c]
push eax
call fcn.0041d770
add esp, 4
push str.MainFrame_frame.png
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0xe0], 3
call sub.MFC42u.DLL_operator
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
push ebx
push eax
mov edx, dword [ecx]
mov byte [esp + 0xdc], 4
call dword [edx + 0xc]
test eax, eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 3
sete bl
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 1
call sub.MFC42u.DLL_CString::CString
test bl, bl
je 0x41e68d
call fcn.00406030
test eax, eax
je 0x41e675
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
call dword [ecx + 0x58]
mov dword [esp + 0x24], 0x461ba8
mov dword [esp + 0xd4], 5
jmp 0x41eac4
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, dword [eax]
mov ecx, dword [esp + 0xdc]
push ecx
mov esi, dword [eax + 4]
call sub.MFC42u.DLL_CDC::FromHandle
mov edx, dword [eax + 4]
push esi
push edi
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, ebp
call sub.MFC42u.DLL_CGdiObject::Attach
xor ebx, ebx
jmp 0x41e6e0
lea ecx, [esp + 0xb4]
push ecx
push 0x18
push eax
call edi
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
cmp ebp, ebx
je 0x41e6e7
mov ebx, dword [ebp + 4]
lea ecx, [esp + 0x54]
call fcn.00456236
xor edx, edx
lea eax, [esp + 0x9c]
mov dword [esp + 0xa0], edx
push eax
mov dword [esp + 0xa8], edx
xor ebp, ebp
mov dword [esp + 0xac], edx
push 0x18
mov dword [esp + 0xb4], edx
push ebx
mov byte [esp + 0xe0], 6
mov dword [esp + 0x60], 0x461ba8
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xbc], edx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
push eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x80], ebp
call sub.MFC42u.DLL_CDC::FromHandle
cmp eax, ebp
jne 0x41e771
xor eax, eax
jmp 0x41e774
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x58]
call sub.MFC42u.DLL_CDC::Attach
cmp ebx, ebp
je 0x41e797
mov ecx, dword [esp + 0x58]
push ebx
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x41e799
xor eax, eax
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xd4], 7
cmp ecx, ebp
je 0x41e7f1
lea eax, [esp + 0x54]
xor edx, edx
push ebp
push ebp
neg eax
push ebp
mov ebx, dword [esp + 0x64]
sbb eax, eax
sub esp, 0x10
mov ebp, esp
and eax, ebx
mov ebx, dword [ecx]
push eax
mov dword [ebp], edx
mov dword [ebp + 4], edx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], esi
call dword [ebx + 0x10]
call fcn.00406030
xor ebp, ebp
cmp eax, ebp
je 0x41e7ed
mov edx, dword [eax]
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [edx + 0x58]
mov dword [esp + 0x14], ebp
mov ebx, dword [sym.imp.GDI32.dll_BitBlt]
cmp edi, ebp
je 0x41e890
test esi, esi
je 0x41e890
mov eax, dword [esp + 0xe8]
mov edx, edi
neg edx
xor ebp, ebp
cmp edx, eax
jge 0x41e84d
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x54]
neg eax
sbb eax, eax
push 0xcc0020
and eax, ecx
push 0
push 0
push eax
mov eax, dword [esp + 0x38]
push esi
push edi
push 0
push ebp
push eax
call ebx
mov eax, dword [esp + 0xe8]
add ebp, edi
mov ecx, ebp
sub ecx, edi
cmp ecx, eax
jl 0x41e818
mov ebp, dword [esp + 0xec]
mov edi, esi
test ebp, ebp
jle 0x41e897
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x24]
mov edx, dword [esp + 0x50]
push 0xcc0020
neg eax
sbb eax, eax
push 0
and eax, ecx
push 0
push eax
mov eax, dword [esp + 0xf0]
push esi
push edx
push edi
push eax
push ecx
call ebx
add edi, esi
mov ecx, edi
sub ecx, esi
cmp ecx, ebp
jl 0x41e85a
jmp 0x41e897
mov ebp, dword [esp + 0xec]
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0xfc]
cmp dword [esi], 0
jne 0x41eadb
mov eax, dword [0x4731f8]
test eax, eax
je 0x41e8bf
mov edx, dword [eax]
push eax
call dword [edx + 0x54]
mov dword [esi], eax
cmp dword [esi], 0
jne 0x41e923
mov esi, 0x461ba8
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xd4], 8
test eax, eax
je 0x41e8e9
push eax
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x54]
call sub.MFC42u.DLL_CDC::DeleteDC
lea ecx, [esp + 0x54]
mov byte [esp + 0xd4], 1
call sub.MFC42u.DLL_CDC::CDC
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd4], 9
test eax, eax
je 0x41ebc3
jmp 0x41ebb7
test edi, edi
je 0x41e9fc
lea edx, [esp + 0x18]
push edx
call fcn.0041d770
add esp, 4
push str.MainFrame_framemod_sim.png
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xdc], 0xa
push eax
call sub.MFC42u.DLL_operator
mov ecx, dword [esi]
mov eax, dword [eax]
push 0
push eax
mov edx, dword [ecx]
mov byte [esp + 0xdc], 0xb
call dword [edx + 0xc]
test eax, eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 0xa
sete byte [esp + 0x13]
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 7
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
je 0x41eadb
call fcn.00406030
test eax, eax
je 0x41e9a9
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x58]
mov esi, 0x461ba8
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xd4], 0xc
test eax, eax
je 0x41e9ce
mov edx, dword [esp + 0x58]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x54]
call sub.MFC42u.DLL_CDC::DeleteDC
lea ecx, [esp + 0x54]
mov byte [esp + 0xd4], 1
call sub.MFC42u.DLL_CDC::CDC
mov dword [esp + 0x24], esi
mov dword [esp + 0xd4], 0xd
jmp 0x41eac4
lea ecx, [esp + 0x18]
push ecx
call fcn.0041d770
add esp, 4
push str.MainFrame_framemod.png
lea edx, [esp + 0x20]
push eax
push edx
mov byte [esp + 0xe0], 0xe
call sub.MFC42u.DLL_operator
mov ecx, dword [esi]
mov eax, dword [eax]
push 0
push eax
mov edx, dword [ecx]
mov byte [esp + 0xdc], 0xf
call dword [edx + 0xc]
test eax, eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd4], 0xe
sete byte [esp + 0x13]
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 7
call sub.MFC42u.DLL_CString::CString
mov al, byte [esp + 0x13]
test al, al
je 0x41eadb
call fcn.00406030
test eax, eax
je 0x41ea76
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x58]
mov esi, 0x461ba8
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xd4], 0x10
test eax, eax
je 0x41ea9b
mov edx, dword [esp + 0x58]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x54]
call sub.MFC42u.DLL_CDC::DeleteDC
lea ecx, [esp + 0x54]
mov byte [esp + 0xd4], 1
call sub.MFC42u.DLL_CDC::CDC
mov dword [esp + 0x24], esi
mov dword [esp + 0xd4], 0x11
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x41ebc3
push eax
mov eax, dword [esp + 0x2c]
push eax
jmp 0x41ebbd
mov ecx, dword [esi]
lea eax, [esp + 0x1c]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, eax
mov eax, dword [ecx]
test eax, eax
mov ecx, dword [ecx + 4]
je 0x41eb2c
test ecx, ecx
je 0x41eb2c
mov edx, dword [esi]
mov ecx, dword [esp + 0xe0]
push edi
push edx
mov edx, dword [esp + 0xec]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x100]
mov dword [eax + 4], edx
lea edx, [esp + 0x3c]
push edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
call fcn.0041dc30
add esp, 0x1c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x50]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0xf4]
push edx
mov edx, dword [esp + 0xf4]
push eax
push ecx
push edx
call ebx
mov esi, 0x461ba8
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xd4], 0x12
test eax, eax
je 0x41eb86
push eax
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x54]
call sub.MFC42u.DLL_CDC::DeleteDC
lea ecx, [esp + 0x54]
mov byte [esp + 0xd4], 1
call sub.MFC42u.DLL_CDC::CDC
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd4], 0x13
test eax, eax
je 0x41ebc3
mov ecx, dword [esp + 0x28]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x24]
call sub.MFC42u.DLL_CDC::DeleteDC
lea ecx, [esp + 0x24]
mov dword [esp + 0xd4], 0xffffffff
call sub.MFC42u.DLL_CDC::CDC
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc8
ret