Function at 0x40e930
Capabilities:
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x418416
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebp, ebp
mov byte [esp + 0x13], 0
mov dword [esp + 0xb0], ebp
call sub.MFC42.DLL_AfxGetModuleState
mov edi, dword [eax + 4]
push 0x248
mov dword [esp + 0x30], edi
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0xb0], 1
je 0x40e993
mov ecx, eax
call fcn.00405f10
mov ebx, eax
jmp 0x40e995
xor ebx, ebx
push ecx
lea eax, [edi + 0xd0]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 0
call sub.MFC42.DLL_CString::CString_3
push ecx
add edi, 0xd4
mov ecx, esp
mov dword [esp + 0x38], esp
push edi
mov byte [esp + 0xbc], 2
call sub.MFC42.DLL_CString::CString_3
push 0xffff
lea ecx, [esi + 0xac]
mov byte [esp + 0xbc], 0
call fcn.00401eb0
push eax
lea ecx, [esi + 0xa8]
call fcn.00401eb0
push eax
lea ecx, [esi + 0xa4]
call fcn.00401eb0
push eax
mov ecx, ebx
call fcn.00405fa0
mov ecx, ebx
call fcn.00406a30
test eax, eax
jne 0x40ea17
mov byte [esp + 0x13], 1
push 1
push 0x3e9
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::ShowWindow
lea ecx, [esp + 0x28]
call fcn.00416a4c
lea ecx, [esp + 0x28]
push str.Reading_Import_File
push ecx
mov byte [esp + 0xb8], 4
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x30]
add esp, 8
mov ecx, esi
push edx
push 0x3e9
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::BeginWaitCursor
movsx eax, word [esi + 0xb0]
add eax, 0xffffffec
mov byte [esp + 0xb0], 5
cmp eax, 0x3c
ja case.0x40ea97.32
xor ecx, ecx
mov cl, byte [eax + 0x40f5f0]
jmp dword [ecx*4 + 0x40f5bc]
push 1
mov ecx, esi
call fcn.00403bc0
test eax, eax
je 0x40f46f
jmp 0x40eb78
push ebp
mov ecx, esi
call fcn.00403bc0
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.00404900
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.004020d0
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.0040e050
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.0040e320
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.0040db90
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.0040fb00
test eax, eax
je 0x40f46f
jmp 0x40eb78
push ebx
mov ecx, esi
call fcn.00412b70
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call section..text
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.00411d40
test eax, eax
je 0x40f46f
jmp 0x40eb78
mov ecx, esi
call fcn.0040baa0
test eax, eax
je 0x40f46f
mov eax, dword [esi + 0x68]
cmp eax, 0xffff
jle 0x40eb8e
push ebp
push ebp
push str.This_file_contains_more_than_65535_points_nProcess_Aborting_nContact_Foresight_Software
jmp 0x40f46a
cmp eax, 0x186a0
jle 0x40eba1
mov dword [esi + 0x140], 0x1f4
jmp 0x40ebc5
cmp eax, 0xc350
jle 0x40ebb4
mov dword [esi + 0x140], 0x64
jmp 0x40ebc5
cmp eax, 0x1388
jle 0x40ebc5
mov dword [esi + 0x140], 0x32
mov al, byte [esi + 0x17c]
mov dword [esi + 0xa0], ebp
test al, al
je 0x40ee9b
push str.Checking_Incoming_Point_Numbers
push 0x3e9
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov byte [esp + 0x1f], 1
push 0x14
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0xb0], 6
je 0x40ec1b
mov ecx, eax
call sub.MFC42.DLL_CDWordArray::CDWordArray
mov ebx, eax
jmp 0x40ec1d
xor ebx, ebx
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::BeginWaitCursor
mov byte [esp + 0xb0], 7
xor edi, edi
cmp edi, dword [esi + 0x68]
jge 0x40ee6f
mov edx, dword [esi + 0x64]
push ebx
mov eax, dword [edx + edi*4]
mov eax, dword [eax + 8]
push eax
call fcn.0040f690
add esp, 8
test eax, eax
jne 0x40ec5f
inc edi
jmp 0x40ec3c
push ebp
push ecx
lea edx, [esp + 0xc0]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call sub.MFC42.DLL_CString::CString_3
lea eax, [esi + 0x60]
lea ecx, [esp + 0x3c]
push eax
call fcn.004164a0
mov cl, byte [esp + 0x1f]
mov byte [esp + 0xb0], 8
mov byte [esp + 0x95], cl
lea ecx, [esp + 0x34]
mov byte [esp + 0x1f], 0
call sub.MFC42.DLL_CDialog::DoModal
cmp eax, 2
je 0x40ee09
mov al, byte [esp + 0x94]
test al, al
je 0x40ece1
mov ecx, dword [esi + 0x68]
xor eax, eax
cmp ecx, ebp
jle 0x40ecd4
mov edx, dword [esi + 0x64]
inc eax
mov ecx, dword [edx + eax*4 - 4]
mov edx, dword [ecx + 4]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x68]
cmp eax, ecx
jl 0x40ecbf
mov byte [esp + 0xb0], 0xa
jmp 0x40edd2
mov eax, dword [esp + 0x9c]
cmp eax, 1
je 0x40ee48
cmp eax, ebp
jne 0x40edca
push 0x14
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0xb0], 0xc
je 0x40ed1c
mov ecx, eax
call sub.MFC42.DLL_CDWordArray::CDWordArray
mov ebp, eax
mov byte [esp + 0xb0], 8
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::BeginWaitCursor
mov eax, dword [esi + 0x68]
xor ebx, ebx
test eax, eax
mov byte [esp + 0xb0], 0xd
jle 0x40ed90
mov eax, dword [esi + 0x64]
mov edi, dword [eax + ebx*4]
mov eax, dword [esi + 0xa0]
test eax, eax
jne 0x40ed58
mov ecx, dword [edi + 8]
mov dword [edi + 4], ecx
mov edx, dword [edi + 8]
push ebp
push edx
call fcn.0040f690
add esp, 8
test eax, eax
je 0x40ed88
mov eax, dword [esp + 0x98]
mov ecx, dword [edi + 8]
add ecx, eax
push ebp
mov eax, ecx
mov dword [edi + 8], ecx
push eax
call fcn.0040f690
add esp, 8
test eax, eax
jne 0x40ed69
mov eax, dword [esi + 0x68]
inc ebx
cmp ebx, eax
jl 0x40ed42
push 0xffffffffffffffff
push 0
mov ecx, ebp
mov dword [esi + 0xa0], 1
call sub.MFC42.DLL_CDWordArray::SetSize
test ebp, ebp
je 0x40edb3
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 4]
mov byte [esp + 0xb0], 8
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
xor ebp, ebp
mov byte [esp + 0xb0], 0xe
lea ecx, [esp + 0xa4]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 7
call sub.MFC42.DLL_CDialog::CDialog
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
jmp 0x40ebf6
lea ecx, [esp + 0xa4]
mov byte [esp + 0xb0], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 7
call sub.MFC42.DLL_CDialog::CDialog
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
jmp 0x40f46f
lea ecx, [esp + 0xa4]
mov byte [esp + 0xb0], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 7
call sub.MFC42.DLL_CDialog::CDialog
jmp 0x40ee86
push 0xffffffffffffffff
push ebp
mov ecx, ebx
call sub.MFC42.DLL_CDWordArray::SetSize
cmp ebx, ebp
je 0x40ee86
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
mov bl, 0x10
push ebp
lea ecx, [esp + 0x38]
call fcn.00416900
mov al, byte [esp + 0x13]
mov byte [esp + 0xb0], 0xf
test al, al
je 0x40eec5
mov al, byte [esi + 0x17c]
test al, al
je 0x40f02a
cmp word [esi + 0xb0], 0x32
mov dword [esp + 0x98], ebp
jne 0x40eedf
lea ecx, [esp + 0x34]
call fcn.004169d0
xor edi, edi
cmp edi, dword [esi + 0x68]
jge 0x40f02a
mov ecx, dword [esi + 0x140]
mov eax, edi
cdq
idiv ecx
imul eax, ecx
cmp edi, eax
jne 0x40ef60
mov ecx, dword [esi + 0xd4]
push ebp
push ebp
push 0x405
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x20]
call fcn.00416a4c
mov eax, dword [esi + 0x68]
lea edx, [esp + 0x20]
push eax
push edi
push str.Checking_Point__ld_of__ld
push edx
mov byte [esp + 0xc0], bl
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x30]
add esp, 0x10
mov ecx, esi
push eax
push 0x3e9
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x20]
mov byte [esp + 0xb0], 0xf
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esi + 0x64]
push ebp
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 8]
push edx
call fcn.00406ac0
cmp ax, 0xffff
je 0x40efa1
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CDialog::DoModal
cmp eax, 2
je 0x40f014
mov eax, dword [esp + 0x98]
cmp eax, ebp
je 0x40efa7
cmp eax, 1
je 0x40efe9
cmp eax, 2
je 0x40efe9
inc edi
jmp 0x40eee1
mov eax, dword [esi + 0x68]
xor ecx, ecx
cmp eax, ebp
jle 0x40efdd
mov eax, dword [esi + 0x64]
mov edx, dword [esi + 0xa0]
cmp edx, ebp
mov eax, dword [eax + ecx*4]
jne 0x40efc6
mov edx, dword [eax + 8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x94]
mov edi, dword [eax + 8]
add edi, edx
inc ecx
mov dword [eax + 8], edi
mov eax, dword [esi + 0x68]
cmp ecx, eax
jl 0x40efb0
mov dword [esi + 0xa0], 1
jmp 0x40effe
push ebp
push 0x124
push str.Are_you_sure
call sub.MFC42.DLL_AfxMessageBox
cmp eax, 6
je 0x40f02a
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_CDialog::CDialog
jmp 0x40ee9d
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_CDialog::CDialog
jmp 0x40f46f
mov eax, dword [esi + 0x68]
xor edi, edi
cmp eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], edi
jle 0x40f403
jmp 0x40f045
mov edi, dword [esp + 0x20]
mov eax, edi
cdq
idiv dword [esi + 0x140]
test edx, edx
jne 0x40f0b7
mov eax, dword [esi + 0xd4]
push edx
push edx
push 0x405
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x30]
call fcn.00416a4c
mov eax, dword [esi + 0x68]
lea ecx, [esp + 0x30]
push eax
push edi
push str.Storing_Point__ld_of__ld
push ecx
mov byte [esp + 0xc0], 0x11
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x40]
add esp, 0x10
mov ecx, esi
push edx
push 0x3e9
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x30]
mov byte [esp + 0xb0], 0xf
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x64]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc8]
lea ebp, [edi + 0xc]
push ebp
push eax
call fcn.0040fa20
mov ecx, dword [esp + 0x34]
lea ebx, [edi + 0x14]
push ebx
mov edx, dword [ecx + 0xc8]
push edx
call fcn.0040fa20
fld dword [edi + 0x1c]
fcomp dword [0x4196b8]
add esp, 0x10
fnstsw ax
test ah, 1
je 0x40f113
lea eax, [edi + 0x1c]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc8]
push ecx
call fcn.0040fa90
add esp, 8
mov edx, dword [esp + 0x2c]
lea eax, [edi + 0x2c]
push eax
mov eax, dword [edx + 0xc8]
push eax
call fcn.0040fa20
mov ecx, dword [esp + 0x34]
lea eax, [edi + 0x34]
push eax
mov edx, dword [ecx + 0xc8]
push edx
call fcn.0040fa20
fld dword [edi + 0x3c]
fcomp dword [0x4196b8]
add esp, 0x10
fnstsw ax
test ah, 1
je 0x40f165
lea eax, [edi + 0x3c]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc8]
push ecx
call fcn.0040fa90
add esp, 8
cmp dword [esp + 0x98], 2
jne 0x40f31f
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x14]
push 0
push edx
call fcn.00406ac0
cmp ax, 0xffff
mov dword [esp + 0x18], eax
je 0x40f31f
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x14]
push eax
call fcn.00404ec0
test eax, eax
je 0x40f1c8
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x40f3ef
push 0
push 0
push str.Some_of_the_points_to_be_altered_are_on_locked_layers._nThey_will_not_be_altered.
call sub.MFC42.DLL_AfxMessageBox
mov dword [esp + 0x24], 1
jmp 0x40f3ef
mov eax, dword [esi + 0x74]
test eax, eax
je 0x40f1e0
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00409550
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40f1ff
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x18]
push 0
push edx
push eax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.00407130
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x40f21d
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
push 0
push edx
push eax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.00407230
mov eax, dword [esi + 0x80]
test eax, eax
je 0x40f239
mov edx, dword [edi + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
push eax
call fcn.00407780
mov eax, dword [esi + 0x84]
test eax, eax
je 0x40f25c
push 8
lea ecx, [edi + 0x20]
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004073d0
mov eax, dword [esi + 0x88]
test eax, eax
je 0x40f27f
push 0x14
lea ecx, [edi + 0x24]
call sub.MFC42.DLL_CString::GetBuffer
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push edx
call fcn.00407480
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x40f29c
mov ax, word [edi + 0x28]
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00407330
mov eax, dword [esi + 0x90]
test eax, eax
je 0x40f2bd
fld qword [edi + 0x2c]
mov edx, dword [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
push edx
call fcn.00407530
mov eax, dword [esi + 0x94]
test eax, eax
je 0x40f2de
fld qword [edi + 0x34]
mov eax, dword [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.004075e0
mov eax, dword [esi + 0x98]
test eax, eax
je 0x40f2fa
mov ecx, dword [edi + 0x3c]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.00407690
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x40f3ef
mov al, byte [edi + 0x40]
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00407920
jmp 0x40f3ef
mov al, byte [esp + 0x13]
test al, al
je 0x40f392
mov al, byte [esi + 0x17c]
test al, al
jne 0x40f392
mov al, byte [edi + 0x40]
mov ecx, dword [edi + 0x3c]
fld qword [edi + 0x34]
mov edx, dword [edi]
push 0
push 0
push eax
push ecx
push ecx
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 0x28]
fstp dword [esp]
fld qword [edi + 0x2c]
push ecx
lea ecx, [edi + 0x24]
fstp dword [esp]
push edx
push 0x14
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 8
lea ecx, [edi + 0x20]
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push eax
mov eax, dword [edi + 0x1c]
push eax
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [ebp]
push edx
mov edx, dword [esp + 0x48]
push eax
add edi, 8
push ecx
mov ecx, dword [esp + 0x4c]
push edi
push edx
call fcn.004086c0
jmp 0x40f3ef
mov cl, byte [edi + 0x40]
mov edx, dword [edi + 0x3c]
fld qword [edi + 0x34]
mov eax, dword [edi]
push 1
push ecx
push edx
push ecx
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x28]
fstp dword [esp]
fld qword [edi + 0x2c]
push ecx
lea ecx, [edi + 0x24]
fstp dword [esp]
push eax
push 0x14
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 8
lea ecx, [edi + 0x20]
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebx + 4]
push eax
mov eax, dword [ebx]
push ecx
mov ecx, dword [ebp + 4]
push edx
mov edx, dword [ebp]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
add edi, 8
push edx
push edi
push eax
call fcn.004084c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x68]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x40f041
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 5
call sub.MFC42.DLL_CDialog::CDialog
mov al, byte [esp + 0x13]
test al, al
je 0x40f46f
mov al, byte [esi + 0x17c]
test al, al
jne 0x40f46f
push 0x3ed
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
push eax
push 0x3e9
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, dword [esp + 0x18]
push eax
call fcn.0040a310
push 0x41ecb0
push 0x3e9
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
jmp 0x40f46f
push ebp
push ebp
push str.Not_Yet_Implemented
call sub.MFC42.DLL_AfxMessageBox
mov edi, dword [esp + 0x14]
test edi, edi
je 0x40f487
mov ecx, edi
call fcn.00406170
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov byte [esp + 0xb0], 4
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::EndWaitCursor
lea ecx, [esp + 0x28]
mov byte [esp + 0xb0], 0
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x68]
xor ebp, ebp
test eax, eax
jle 0x40f587
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x140]
mov eax, ebp
cdq
idiv ecx
imul eax, ecx
cmp ebp, eax
jne 0x40f535
mov ecx, dword [esi + 0xd4]
push 0
push 0
push 0x405
push ecx
call ebx
lea ecx, [esp + 0x28]
call fcn.00416a4c
mov eax, dword [esi + 0x68]
lea edx, [esp + 0x28]
push eax
push ebp
push str.Clearing_Point__ld_of__ld
push edx
mov byte [esp + 0xc0], 0x12
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x38]
add esp, 0x10
mov ecx, esi
push eax
push 0x3e9
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0xb0], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esi + 0x64]
mov edi, dword [ecx + ebp*4]
test edi, edi
mov dword [esp + 0x24], edi
je 0x40f57b
lea ecx, [edi + 0x24]
mov byte [esp + 0xb0], 0x14
call sub.MFC42.DLL_CString::CString
lea ecx, [edi + 0x20]
mov byte [esp + 0xb0], 0x13
call sub.MFC42.DLL_CString::CString
mov ecx, edi
mov byte [esp + 0xb0], 0
call sub.MFC42.DLL_CString::CString
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esi + 0x68]
inc ebp
cmp ebp, eax
jl 0x40f4c0
lea ecx, [esp + 0xb8]
mov dword [esp + 0xb0], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xa8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xa4
ret 4