Function at 0x40bf40
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41da68
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebp
push esi
push edi
mov edi, dword [esp + 0x38]
xor ebp, ebp
mov esi, ecx
cmp edi, ebp
jne 0x40bf7d
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret 4
push ebx
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::CString
push edi
push 0x500
push 0x500
lea ecx, [esp + 0x48]
mov dword [esp + 0x40], ebp
call sub.MFC42.DLL_CString::GetBuffer
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push 0x429eb4
push str.List
push str.Location
call ebx
push 0xffffffffffffffff
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CString::ReleaseBuffer
push 0xffffffffffffffff
lea ecx, [esi + 0xd8]
push ebp
call sub.MFC42.DLL_CStringArray::SetSize
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], ebp
mov ecx, dword [eax - 8]
cmp ecx, ebp
jle 0x40c076
mov ecx, dword [esp + 0x10]
add ecx, eax
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push 0x3b
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 1
call sub.MFC42.DLL_CString::Find
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40c017
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov ebp, dword [edx - 8]
sub ebp, eax
lea eax, [esp + 0x18]
push ebp
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Left
mov edx, dword [esi + 0xe0]
lea ecx, [esi + 0xd8]
push eax
push edx
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CStringArray::SetAtGrow
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], 1
call fcn.004193cc
mov eax, dword [esp + 0x10]
inc ebp
add eax, ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], eax
mov byte [esp + 0x34], 0
call fcn.004193cc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax - 8]
jl 0x40bfe3
push edi
push 1
push 0x425bc8
push str.Objects
call fcn.0040be10
push edi
push 1
push 0x425bb8
push str.Objects
mov dword [esi + 0x2fc], eax
call fcn.0040be10
push edi
push 1
push 0x425bb0
push str.Objects
mov dword [esi + 0x2f0], eax
call fcn.0040be10
push edi
push 1
push str.Packed
push str.Objects
mov dword [esi + 0x2f4], eax
call fcn.0040be10
add esp, 0x40
mov dword [esi + 0x2f8], eax
push edi
push 0
push 0x425b9c
push str.Objects
call fcn.0040be10
push edi
push 0
push str.MailBases
push str.Objects
mov dword [esi + 0x300], eax
call fcn.0040be10
push edi
push 0
push str.MailPlain
push str.Objects
mov dword [esi + 0x30c], eax
call fcn.0040be10
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0x30
mov dword [esi + 0x308], eax
push edi
push 0
push str.FileMask
push str.Objects
call ebp
push edi
push 0x500
lea ecx, [esi + 0x304]
push 0x500
mov dword [esi + 0x2ec], eax
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 0x429eb4
push str.UserMask
push str.Objects
call ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x304]
call sub.MFC42.DLL_CString::ReleaseBuffer
push edi
push 0
push str.Exclude
push str.Objects
call fcn.0040be10
add esp, 0x10
lea ecx, [esi + 0x314]
mov dword [esi + 0x310], eax
push edi
push 0x500
push 0x500
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 0x429eb4
push str.ExcludeMask
push str.Objects
call ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x314]
call sub.MFC42.DLL_CString::ReleaseBuffer
mov edx, dword [esi + 0x4e0]
push edi
push edx
push str.InfectedAction
push str.Actions
call ebp
push edi
push 0
push str.InfectedCopy
push str.Actions
mov dword [esi + 0x4e0], eax
call fcn.0040be10
add esp, 0x10
lea ecx, [esi + 0x4d8]
mov dword [esi + 0x4d0], eax
push edi
push 0x500
push 0x500
call sub.MFC42.DLL_CString::GetBuffer
push eax
push str.Infected
push str.InfectedFolder
push str.Actions
call ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x4d8]
call sub.MFC42.DLL_CString::ReleaseBuffer
push edi
push 0
push str.SuspiciousCopy
push str.Actions
call fcn.0040be10
add esp, 0x10
lea ecx, [esi + 0x4dc]
mov dword [esi + 0x4d4], eax
push edi
push 0x500
push 0x500
call sub.MFC42.DLL_CString::GetBuffer
push eax
push str.Suspicious
push str.SuspiciousFolder
push str.Actions
call ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x4dc]
call sub.MFC42.DLL_CString::ReleaseBuffer
push edi
push 1
push 0x425ad8
push str.Options
call fcn.0040be10
push edi
push 1
push str.CodeAnalyzer
push str.Options
mov dword [esi + 0x384], eax
call fcn.0040be10
push edi
push 0
push str.RedundantScan
push str.Options
mov dword [esi + 0x38c], eax
call fcn.0040be10
push edi
push 0
push str.ShowOK
push str.Options
mov dword [esi + 0x398], eax
call fcn.0040be10
add esp, 0x40
mov dword [esi + 0x388], eax
push edi
push 0
push str.ShowPack
push str.Options
call fcn.0040be10
mov dword [esi + 0x3a8], eax
push edi
push 1
push str.Sound
push str.Options
call fcn.0040be10
push edi
push 1
push str.Tracking
push str.Options
mov dword [esi + 0x16c], eax
call fcn.0040be10
add esp, 0x30
lea ecx, [esi + 0x5c4]
mov dword [esi + 0x5c0], eax
push eax
call fcn.00412cf0
mov eax, dword [esi + 0x5c0]
and eax, 0xffff
push eax
mov eax, dword [esi + 0x64c]
push 0x8018
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
push 1
push str.Report
push str.Options
call fcn.0040be10
add esp, 0x10
lea ecx, [esi + 0x3a0]
mov dword [esi + 0x39c], eax
push edi
push 0x500
push 0x500
call sub.MFC42.DLL_CString::GetBuffer
push eax
push str.Report.txt
push str.ReportFileName
push str.Options
call ebx
push 0xffffffffffffffff
lea ecx, [esi + 0x3a0]
call sub.MFC42.DLL_CString::ReleaseBuffer
push edi
push 0
push 0x425a5c
push str.Options
call fcn.0040be10
push edi
push 0
push str.ReportFileLimit
push str.Options
mov dword [esi + 0x394], eax
call fcn.0040be10
add esp, 0x20
mov dword [esi + 0x390], eax
push edi
push 0x1f4
push str.ReportFileSize
push str.Options
call ebp
mov ecx, dword [esi + 0x16c]
push edi
push ecx
push str.Sound
push 0x425a30
mov dword [esi + 0x3a4], eax
call fcn.0040be10
push edi
push 1
push str.DeleteAllMessage
push 0x425a30
mov dword [esi + 0x16c], eax
call fcn.0040be10
push edi
push 1
push str.NextDiskPrompt
push 0x425a30
mov dword [esi + 0x14c], eax
call fcn.0040be10
push edi
push 1
push str.PopupAfterFinish
push 0x425a30
mov dword [esi + 0x150], eax
call fcn.0040be10
add esp, 0x40
mov dword [esi + 0x154], eax
push edi
push 1
push str.RedundantMessage
push 0x425a30
call fcn.0040be10
push edi
push 0
push str.SingleClick
push 0x425a30
mov dword [esi + 0x158], eax
call fcn.0040be10
push edi
push 0
push str.StatAfterBegin
push 0x425a30
mov dword [esi + 0x15c], eax
call fcn.0040be10
push edi
push 1
push str.StatAfterFinish
push 0x425a30
mov dword [esi + 0x160], eax
call fcn.0040be10
add esp, 0x40
mov dword [esi + 0x164], eax
push edi
push 1
push str.OtherMessages
push 0x425a30
call fcn.0040be10
add esp, 0x10
mov dword [esi + 0x168], eax
push edi
push 0xe
push str.UpdateInterval
push 0x425a30
call ebp
push edi
push 1
push str.UpdateCheck
push 0x425a30
mov dword [esi + 0x170], eax
call fcn.0040be10
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
add esp, 0x10
mov dword [esi + 0x174], eax
mov eax, dword [esi + 0x20]
lea edx, [esp + 0x1c]
push edx
push eax
call ebx
mov ecx, dword [esp + 0x1c]
push edi
push ecx
push str.Xpos
push str.Position
call ebp
mov edx, dword [esp + 0x20]
push edi
push edx
push str.Ypos
push str.Position
mov dword [0x429eb8], eax
call ebp
mov edx, dword [esp + 0x1c]
mov dword [0x429ed0], eax
mov eax, dword [esp + 0x24]
push edi
sub eax, edx
push eax
push str.Xsize
push str.Position
call ebp
mov ecx, dword [esp + 0x28]
push edi
mov edi, dword [esp + 0x24]
mov dword [0x429ecc], eax
sub ecx, edi
push ecx
push str.Ysize
push str.Position
call ebp
mov dword [0x429ef8], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x1c]
push edx
push eax
call ebx
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov eax, dword [0x429eb8]
sub ecx, ebx
sub ecx, 0xa
cmp ecx, eax
jge 0x40c5bc
mov eax, 0x1e
mov dword [0x429eb8], eax
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
sub edx, ebx
mov ebx, dword [0x429ed0]
sub edx, 0xa
cmp edx, ebx
jge 0x40c5de
mov ebx, 0x1e
mov dword [0x429ed0], ebx
mov ecx, dword [esi + 0x60]
mov edx, dword [0x429ecc]
cmp edx, ecx
jge 0x40c5f3
mov edx, ecx
mov dword [0x429ecc], edx
mov edi, dword [esi + 0x64]
mov ecx, dword [0x429ef8]
cmp ecx, edi
jge 0x40c608
mov ecx, edi
mov dword [0x429ef8], ecx
push 4
push ecx
push edx
push ebx
push eax
push 0
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetWindowPos
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
mov ecx, esi
call fcn.0040b7f0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], 0xffffffff
call fcn.004193cc
mov ecx, dword [esp + 0x2c]
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
mov dword fs:[0], ecx
add esp, 0x28
ret 4