Function at 0x4073b0
Capabilities:
Read .ini file

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi]
mov ebx, dword [eax - 4]
mov edx, dword [eax - 8]
sub eax, 0x10
mov ecx, 1
sub ecx, ebx
sub edx, 0x104
or ecx, edx
jge 0x4073de
push 0x104
mov ecx, edi
call fcn.00401ed0
mov ebx, dword [esp + 0x14]
mov eax, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.AppName
push str.Main
call ebp
mov ecx, dword [edi]
test ecx, ecx
jne 0x40740c
xor eax, eax
jmp 0x407420
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407411
sub eax, esi
js 0x408206
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
mov byte [eax + ecx], 0
mov eax, dword [edi + 4]
mov ecx, dword [eax - 4]
lea esi, [edi + 4]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x40745d
push 0x104
mov ecx, esi
call fcn.00401ed0
mov ecx, dword [esi]
push ebx
push 0x104
push ecx
push 0x43aa4f
push str.AppVersion
push str.Main
call ebp
mov ecx, dword [esi]
test ecx, ecx
jne 0x407481
xor eax, eax
jmp 0x407495
mov eax, ecx
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407486
sub eax, ebx
js 0x408206
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov byte [eax + edx], 0
mov eax, dword [edi + 8]
mov ebx, dword [eax - 4]
mov edx, dword [eax - 8]
lea ebp, [edi + 8]
sub eax, 0x10
mov ecx, 1
sub ecx, ebx
sub edx, 0x104
or ecx, edx
jge 0x4074d3
push 0x104
mov ecx, ebp
call fcn.00401ed0
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.AppVerName
push str.Main
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp]
test ecx, ecx
jne 0x407501
xor eax, eax
jmp 0x407515
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407506
sub eax, esi
js 0x408206
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [ebp]
mov byte [eax + ecx], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax - 4]
lea esi, [edi + 0xc]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x407553
push 0x104
mov ecx, esi
call fcn.00401ed0
mov ecx, dword [esi]
push ebx
push 0x104
push ecx
push 0x43aa4f
push str.Title
push str.Welcome
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x40757b
xor eax, eax
jmp 0x407593
mov eax, ecx
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407580
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov byte [eax + edx], 0
mov eax, dword [ebp]
push eax
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x10]
mov edx, dword [eax - 4]
lea esi, [edi + 0x10]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x4075e1
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain
push str.Welcome
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407609
xor eax, eax
jmp 0x407623
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407610
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x14]
mov edx, dword [eax - 4]
lea esi, [edi + 0x14]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407671
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain1
push str.Welcome
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407699
xor eax, eax
jmp 0x4076b3
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4076a0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
push 0x43b658
mov byte [eax + ecx], 0
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x18]
mov ecx, dword [eax - 4]
lea esi, [edi + 0x18]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x407701
push 0x104
mov ecx, esi
call fcn.00401ed0
mov ecx, dword [esi]
push ebx
push 0x104
push ecx
push 0x43aa4f
push str.Top2
push str.License
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407729
xor eax, eax
jmp 0x407743
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407730
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov byte [eax + edx], 0
mov eax, dword [ebp]
push eax
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x1c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x1c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407791
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top3
push str.License
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x4077b9
xor eax, eax
jmp 0x4077d3
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4077c0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x20]
mov edx, dword [eax - 4]
lea esi, [edi + 0x20]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407821
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain1
push str.License
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407849
xor eax, eax
jmp 0x407863
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407850
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x24]
mov edx, dword [eax - 4]
lea esi, [edi + 0x24]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x4078c2
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain2
push str.License
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x4078ea
xor eax, eax
jmp 0x407903
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4078f0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x28]
mov edx, dword [eax - 4]
lea esi, [edi + 0x28]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407962
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top2
push str.SelSoft
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x40798a
xor eax, eax
jmp 0x4079a3
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407990
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x2c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x2c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x4079f1
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top3
push str.SelSoft
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407a19
xor eax, eax
jmp 0x407a33
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407a20
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x30]
mov edx, dword [eax - 4]
lea esi, [edi + 0x30]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407a81
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain1
push str.SelSoft
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407aa9
xor eax, eax
jmp 0x407ac3
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407ab0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x34]
mov edx, dword [eax - 4]
lea esi, [edi + 0x34]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407b22
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain2
push str.SelSoft
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407b4a
xor eax, eax
jmp 0x407b63
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407b50
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x38]
mov edx, dword [eax - 4]
lea esi, [edi + 0x38]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407bc2
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top2
push str.Artifice
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407bea
xor eax, eax
jmp 0x407c03
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407bf0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x3c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x3c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407c51
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top3
push str.Artifice
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407c79
xor eax, eax
jmp 0x407c93
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407c80
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x40]
mov edx, dword [eax - 4]
lea esi, [edi + 0x40]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407ce1
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain1
push str.Artifice
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407d09
xor eax, eax
jmp 0x407d23
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407d10
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x44]
mov edx, dword [eax - 4]
lea esi, [edi + 0x44]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407d82
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top2
push str.SelDir
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407daa
xor eax, eax
jmp 0x407dc3
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407db0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x48]
mov edx, dword [eax - 4]
lea esi, [edi + 0x48]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407e11
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top3
push str.SelDir
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407e39
xor eax, eax
jmp 0x407e53
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407e40
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x4c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x4c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407ea1
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain1
push str.SelDir
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407ec9
xor eax, eax
jmp 0x407ee3
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407ed0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x50]
mov edx, dword [eax - 4]
lea esi, [edi + 0x50]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407f42
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain2
push str.SelDir
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x407f6a
xor eax, eax
jmp 0x407f83
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407f70
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x54]
mov edx, dword [eax - 4]
lea esi, [edi + 0x54]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x407fe2
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top2
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x40800a
xor eax, eax
jmp 0x408023
mov eax, ecx
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408010
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x58]
mov edx, dword [eax - 4]
lea esi, [edi + 0x58]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x408071
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Top3
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x408099
xor eax, eax
jmp 0x4080b3
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4080a0
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x5c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x5c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x408101
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Title
push str.Finish
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x408129
xor eax, eax
jmp 0x408143
mov eax, ecx
lea ebx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x408130
sub eax, ebx
js 0x408206
mov ebx, dword [esp + 0x14]
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
mov eax, dword [edi + 0x60]
mov edx, dword [eax - 4]
lea esi, [edi + 0x60]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x408191
push 0x104
mov ecx, esi
call fcn.00401ed0
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0x43aa4f
push str.Explain
push str.Finish
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x4081b9
xor eax, eax
jmp 0x4081cb
mov eax, ecx
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4081c0
sub eax, edi
js 0x408206
cmp eax, dword [ecx - 8]
jg 0x408206
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov edx, dword [ebp]
push edx
push str._AppVerName_
mov ecx, esi
call fcn.00406170
push 0x43b658
push 0x43b654
mov ecx, esi
call fcn.00406170
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4
push 0x80070057
call fcn.00401230
int3