Function at 0x406160
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4256d8
mov eax, dword fs:[0]
push eax
sub esp, 0x5ac
mov eax, dword [0x435028]
xor eax, esp
mov dword [esp + 0x5a8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x435028]
xor eax, esp
push eax
lea eax, [esp + 0x5c0]
mov dword fs:[0], eax
push 0x200
lea ebx, [esp + 0x1c0]
call fcn.00402770
push str.program_config.ini
mov eax, ebx
push 0x200
push eax
call dword [sym.imp.MSVCR80.dll_wcscat_s]
mov ecx, dword [str.none]
mov edx, dword [0x4279f4]
mov ax, word [0x4279f8]
push 0xbe
mov dword [esp + 0xa0], ecx
xor ebp, ebp
lea ecx, [esp + 0xaa]
push ebp
push ecx
mov dword [esp + 0xac], edx
mov word [esp + 0xb0], ax
call sub.MSVCR80.dll_memset
add esp, 0x18
push str.none
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov edx, ebx
push edx
push 0x64
lea eax, [esp + 0x98]
push eax
mov dword [esp + 0x5d4], ebp
mov ecx, dword [esp + 0x24]
push ecx
push str.date
push str.zbshareware
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x90]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x406241
sub eax, edx
push 0x62
lea edx, [esp + 0x15e]
sar eax, 1
push ebp
push edx
mov ebx, eax
xor edi, edi
mov word [esp + 0x164], bp
call sub.MSVCR80.dll_memset
push 0x62
lea eax, [esp + 0x3e]
push ebp
push eax
mov word [esp + 0x44], bp
call sub.MSVCR80.dll_memset
add esp, 0x18
cmp ebx, 0x32
jg 0x40642b
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor ecx, ecx
cmp ebx, ebp
jle 0x4062dd
lea edx, [esp + 0x2c]
lea eax, [esp + 0x90]
sub edx, eax
jmp 0x4062b0
movzx eax, word [esp + edi*2 + 0x90]
cmp ax, 0x2e
je 0x4062d5
lea esi, [edx + edi*2]
add edi, 1
add ecx, 1
cmp edi, ebx
mov word [esp + esi + 0x90], ax
jl 0x4062b0
jmp 0x4062dd
mov word [esp + ecx*2 + 0x2c], bp
add edi, 1
cmp edi, ebx
jge 0x4062fc
mov ecx, ebx
sub ecx, edi
lea esi, [esp + edi*2 + 0x90]
shr ecx, 1
lea edi, [esp + 0x158]
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
rep movsw word es:[edi], word [esi]
cmp word [esp + 0x158], bp
jne 0x40631b
movzx esi, word [esp + 0x1e]
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.MSVCR80.dll__wtoi]
add esp, 4
jmp 0x406337
mov edi, dword [sym.imp.MSVCR80.dll__wtoi]
lea edx, [esp + 0x158]
push edx
call edi
mov esi, eax
lea eax, [esp + 0x30]
push eax
call edi
add esp, 8
mov edi, eax
cmp edi, 0x1f
jg 0x40642b
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [esp + 0x5c8], 1
movzx ecx, word [esp + 0x1e]
movzx edx, word [esp + 0x22]
push ecx
push edx
lea eax, [esp + 0x1c]
push str._d._d
push eax
call dword [sym.imp.MFC80U.DLL_Ordinal_2311]
mov cx, word [esp + 0x2e]
movzx eax, cx
add esp, 0x10
cmp eax, esi
jge 0x4063c3
cmp cx, 1
jne 0x4063b4
cmp esi, 0xc
jne 0x4063b4
movzx ecx, word [esp + 0x22]
sub ecx, edi
add ecx, 0x1e
cmp ecx, 0xa
jg 0x406404
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor eax, eax
jmp 0x40643a
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x1bc]
push ecx
push edx
jmp 0x406411
jne 0x4063e5
movzx eax, word [esp + 0x22]
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x406399
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1bc]
push eax
push ecx
jmp 0x406411
sub eax, esi
cmp eax, 1
jne 0x406404
movzx eax, word [esp + 0x22]
sub eax, 1
cdq
xor eax, edx
sub eax, edx
mov edx, 0x1f
sub edx, edi
add eax, edx
jmp 0x4063d1
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x1bc]
push edx
push eax
push str.date
push str.zbshareware
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov eax, 1
mov ecx, dword [esp + 0x5c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5a8]
xor ecx, esp
call fcn.00422de8
add esp, 0x5b8
ret