Function at 0x407c90
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x284
push ebx
push ebp
mov ebp, ecx
push esi
push edi
push str.CompsVer.inf
lea eax, [ebp + 0x5ba]
lea esi, [ebp + 0x1248]
push eax
push str._s_s
push esi
call fcn.00429590
add esp, 0x10
lea edi, [ebp + 0x136c]
push esi
push 0x20
push edi
push 0x43babc
push str.Version
push str.UPDATE
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
push 0x43d574
call fcn.0042a9c0
add esp, 8
test eax, eax
je 0x407cf7
mov dword [ebp + 0x1140], 1
xor esi, esi
lea ecx, [esp + 0x158]
mov dword [esp + 0x1c], esi
call fcn.004238d0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x55]
mov byte [esp + 0x54], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x54]
push 0x104
lea edx, [ebp + 0x23c]
or ebx, 0xffffffff
push ecx
push edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], 0x4000
mov dword [esp + 0x3c], esi
stosb byte es:[edi], al
call fcn.00423bf0
mov edi, 0x43757c
mov ecx, ebx
xor eax, eax
lea edx, [esp + 0x60]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp + 0xace]
push esi
push eax
call fcn.0042a9c0
add esp, 0x14
test eax, eax
je 0x407de4
lea ecx, [esp + 0x54]
push 0
push ecx
push esi
call fcn.00425b10
add esp, 0xc
test eax, eax
jne 0x407dc0
lea ecx, [esp + 0x158]
call fcn.00423940
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x284
ret
lea edi, [esp + 0x54]
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0xace]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str.SaveConfig...
push 0x43bb00
call fcn.004042f0
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 8
lea ebx, [ebp + 0x25c]
push ebx
call esi
test eax, eax
jne 0x407e64
push 0x43d504
call esi
test eax, eax
je 0x407e64
mov edi, 0x43d504
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x278]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x43d53c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
call esi
test eax, eax
jne 0x407ece
lea edi, [ebp + 0x285]
push edi
call esi
test eax, eax
je 0x407ece
push edi
mov ecx, ebp
call fcn.004066e0
test eax, eax
je 0x407ece
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp + 0x278]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp + 0x2a1]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor eax, eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], eax
lea eax, [ebp + 0xace]
push eax
push ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x164]
mov dword [esp + 0x24], 3
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x44], 2
mov dword [esp + 0x48], 1
call fcn.00423990
test eax, eax
jne 0x4080ce
lea ecx, [esp + 0x158]
call fcn.00423d20
mov edi, eax
test edi, edi
je 0x4080b1
mov edx, dword [edi]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
lea eax, [esp + 0x20]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, edi
call dword [edx + 0x4c]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x407f87
push ebx
call esi
test eax, eax
je 0x407f76
push ebx
call esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov edx, dword [ecx]
push eax
push ebx
push 1
call dword [edx + 0x3c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 8]
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x20]
mov dword [esp + 0x44], 3
mov eax, dword [edi]
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, edi
call dword [eax + 0x4c]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40802c
push ebx
call esi
test eax, eax
je 0x407fd1
push ebx
call esi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
mov eax, dword [ecx]
push ebx
push 0x52
call dword [eax + 0x3c]
lea ebx, [ebp + 0x278]
push ebx
call esi
test eax, eax
je 0x407ff6
push ebx
call esi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
mov eax, dword [ecx]
push ebx
push 0x53
call dword [eax + 0x3c]
lea ebx, [ebp + 0x4b6]
push ebx
call esi
test eax, eax
je 0x40801b
push ebx
call esi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
mov eax, dword [ecx]
push ebx
push 0x51
call dword [eax + 0x3c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [esp + 0x10], 0
xor eax, eax
mov edx, dword [edi]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
lea eax, [esp + 0x20]
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, edi
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], 3
call dword [edx + 0x4c]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4080b1
lea ebx, [ebp + 0x4b6]
push ebx
call esi
test eax, eax
je 0x40808e
push ebx
call esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov edx, dword [ecx]
push eax
push ebx
push 3
call dword [edx + 0x3c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x48]
mov ecx, dword [esp + 0x10]
mov esi, eax
neg esi
mov eax, dword [ecx]
sbb esi, esi
inc esi
call dword [eax + 8]
mov dword [esp + 0x10], 0
jmp 0x4080b5
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x158]
call fcn.00423cf0
test esi, esi
je 0x4080d2
mov ecx, ebp
call fcn.00408100
jmp 0x4080d2
mov esi, dword [esp + 0x1c]
push str.SaveConfig_OK
push 0x43bb00
call fcn.004042f0
add esp, 8
lea ecx, [esp + 0x158]
call fcn.00423940
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x284
ret