Function at 0x40a120
Capabilities:
Access peb ldr_data
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x410915
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x548
push ebx
push ebp
push esi
mov dword [esp + 0xc], ecx
push edi
xor esi, esi
push 0x41646c
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], esi
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x18]
mov dword [esp + 0x564], esi
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x38]
mov byte [esp + 0x564], 1
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x564], 2
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x2c]
mov byte [esp + 0x564], 3
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x30]
mov byte [esp + 0x564], 4
call sub.MFC42.DLL_CString::CString_1
push 0x41646c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x564], 5
call sub.MFC42.DLL_CString::CString_1
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x350]
rep stosd dword es:[edi], eax
mov bl, 6
mov ecx, 0x41
lea edi, [esp + 0x454]
mov byte [esp + 0x560], bl
rep stosd dword es:[edi], eax
xor edx, edx
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x24c]
push 0xa
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14c]
lea edi, [edx + 1]
push eax
push edi
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea ecx, [esp + 0x148]
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::operator
lea edx, [esp + 0x1c]
lea eax, [esp + 0x20]
push edx
push str.Scanner
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x564], 7
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
mov ecx, dword [0x4166cc]
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x250]
push 0x104
push edx
push 0x41646c
push str.Name
push eax
call esi
mov ecx, dword [0x4166cc]
lea edx, [esp + 0x44]
push ecx
push 0x104
mov ebp, eax
mov eax, dword [esp + 0x1c]
push edx
push 0x41646c
push str.Model
push eax
call esi
test ebp, ebp
jbe 0x40a2d3
test eax, eax
ja 0x40a2e0
mov edx, edi
cmp edx, 0x1e
jl 0x40a209
jmp 0x40a2f9
lea ecx, [esp + 0x24c]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::operator
mov dword [esp + 0x30], 1
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call sub.MFC42.DLL_CString::CString_2
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0x56c], 8
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
push ecx
mov ecx, edi
mov byte [esp + 0x56c], bl
call fcn.0040a620
push ecx
lea edx, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call sub.MFC42.DLL_CString::CString_1
lea eax, [esp + 0x14]
mov ecx, edi
push eax
call fcn.0040ac60
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x564], 9
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.0040a9a0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x564], 0xa
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
lea edx, [esp + 0x18]
push str.KMScanList.dat
lea eax, [esp + 0x14]
push edx
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x564], 0xb
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x350]
push ecx
push 0x104
push edx
push 0x41646c
push str.Number
push str.MachineList
call esi
lea eax, [esp + 0x350]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ebp, 1
add esp, 4
cmp eax, ebp
mov dword [esp + 0x24], eax
jl 0x40a585
lea ecx, [esp + 0x148]
push 0xa
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea edx, [esp + 0x148]
lea ecx, [esp + 0x1c]
push edx
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push str.Machine
push ecx
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x564], 0xc
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push 0x104
push eax
push 0x41646c
push str.MachineName
push ecx
call esi
push ecx
lea edx, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x44], esp
push edx
call sub.MFC42.DLL_CString::CString_1
lea eax, [esp + 0x24]
mov ecx, edi
push eax
call fcn.0040ac60
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x564], 0xd
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x20]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x40a578
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x458]
push 0x104
push ecx
push 0x41646c
push str.Type
push edx
call esi
push ecx
lea eax, [esp + 0x458]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.0040ac60
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x564], 0xe
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x560], bl
call fcn.0040f2ca
mov edx, dword [0x4166cc]
mov eax, dword [esp + 0x2c]
push edx
push eax
push str.Type
push str.Setting
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0x24]
inc ebp
cmp ebp, eax
jle 0x40a422
lea ecx, [esp + 0x38]
mov byte [esp + 0x560], 5
call fcn.0040f2ca
lea ecx, [esp + 0x2c]
mov byte [esp + 0x560], 4
call fcn.0040f2ca
lea ecx, [esp + 0x28]
mov byte [esp + 0x560], 3
call fcn.0040f2ca
lea ecx, [esp + 0x18]
mov byte [esp + 0x560], 2
call fcn.0040f2ca
lea ecx, [esp + 0x34]
mov byte [esp + 0x560], 1
call fcn.0040f2ca
lea ecx, [esp + 0x14]
mov byte [esp + 0x560], 0
call fcn.0040f2ca
lea ecx, [esp + 0x1c]
mov dword [esp + 0x560], 0xffffffff
call fcn.0040f2ca
mov ecx, dword [esp + 0x558]
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x554
ret