Function at 0x40a4a0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x774
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x47c]
test esi, esi
jg 0x40a4c8
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
push ebx
xor ebx, ebx
xor ecx, ecx
test esi, esi
jle 0x40a8fb
cmp esi, 8
jb 0x40a5c6
mov ebx, dword [eax + 0x7c]
mov eax, esi
and eax, 0x80000007
jns 0x40a4ef
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm7, xmmword [0x42b210]
xorps xmm6, xmm6
mov edx, esi
movaps xmm5, xmm6
sub edx, eax
movaps xmm4, xmm5
xor eax, eax
nop word [eax + eax]
movd xmm2, dword [eax + ebx + 0x58]
lea eax, [eax + 0xe0]
movd xmm0, dword [eax + ebx - 0xa4]
add ecx, 8
movd xmm1, dword [eax + ebx - 0xc0]
movd xmm3, dword [eax + ebx - 0xdc]
punpckldq xmm3, xmm0
movaps xmm0, xmm7
punpckldq xmm1, xmm2
paddd xmm0, xmm5
movd xmm2, dword [eax + ebx - 0x18]
punpckldq xmm3, xmm1
pcmpeqd xmm3, xmm6
movaps xmm1, xmm3
pand xmm5, xmm3
movd xmm3, dword [eax + ebx - 0x6c]
pandn xmm1, xmm0
movd xmm0, dword [eax + ebx - 0x34]
por xmm5, xmm1
movd xmm1, dword [eax + ebx - 0x50]
punpckldq xmm3, xmm0
movaps xmm0, xmm7
punpckldq xmm1, xmm2
paddd xmm0, xmm4
punpckldq xmm3, xmm1
pcmpeqd xmm3, xmm6
movaps xmm1, xmm3
pand xmm4, xmm3
pandn xmm1, xmm0
por xmm4, xmm1
cmp ecx, edx
jl 0x40a510
paddd xmm4, xmm5
movaps xmm0, xmm4
psrldq xmm0, 8
paddd xmm4, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
paddd xmm4, xmm0
movd ebx, xmm4
cmp ecx, esi
jge 0x40a5f9
mov eax, dword [edi + 4]
lea edx, [ecx*8]
sub edx, ecx
shl edx, 2
sub esi, ecx
mov edi, dword [eax + 0x7c]
nop
mov eax, dword [edx + edi + 4]
lea ecx, [ebx + 1]
add edx, 0x1c
test eax, eax
cmove ecx, ebx
mov ebx, ecx
sub esi, 1
jne 0x40a5e0
mov edi, dword [ebp - 4]
test ebx, ebx
jle 0x40a8fb
push 0
push 0
push 0
push str.copy_files
push 0x200
lea eax, [ebp - 0x574]
mov ecx, 0x434b58
push eax
call fcn.00401770
push 0
push 0
push 0
push str.install_apps
push 0x200
lea eax, [ebp - 0x774]
mov ecx, 0x434b58
push eax
call fcn.00401770
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0x574]
push eax
push 0x403
push dword [edi + 0x138]
call esi
lea eax, [ebp - 0x774]
push eax
push 0x402
push dword [edi + 0x138]
call esi
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
call fcn.00408490
test eax, eax
jne 0x40a907
mov eax, dword [edi + 4]
mov ecx, edi
push 0x42a820
push dword [eax + 0x46c]
add eax, 0x84
push eax
push dword [edi + 0x138]
call fcn.004095a0
test eax, eax
je 0x40a907
mov esi, dword [edi + 4]
mov ecx, str.true
mov eax, dword [esi + 0x74]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a6e0
test dl, dl
je 0x40a6dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a6e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a6c0
xor eax, eax
jmp 0x40a6e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x40a8fb
lea ebx, [edi + 0x13c]
push ebx
lea eax, [esi + 0x84]
push eax
push 0x42af24
push dword [0x434008]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x64
lea eax, [ebp - 0x68]
push 0
push eax
call fcn.00413c60
add esp, 0xc
lea eax, [ebp - 0x16c]
push 0x103
push eax
push dword [0x434b50]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x16c]
push 0x5c
push eax
call fcn.00413b20
add esp, 8
test eax, eax
je 0x40a907
push str.setup.inf
mov byte [eax + 1], 0
lea eax, [ebp - 0x16c]
push 0x104
push eax
call fcn.00415b9d
add esp, 0xc
lea eax, [ebp - 0x16c]
push eax
push 0x103
lea eax, [ebp - 0x270]
push eax
push 0x42a6d0
push str.apps
push str.Contents
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x270]
push 0x42af38
push eax
call fcn.0041b491
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
test eax, eax
je 0x40a7c3
push eax
lea eax, [ebp - 0x68]
push str._s.exe
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
mov eax, dword [edi + 4]
add eax, 0x84
push eax
lea eax, [ebp - 0x374]
push 0x42a688
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x374]
push ebx
push eax
push 0x42af44
push dword [0x434008]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, edi
call fcn.00408490
test eax, eax
jne 0x40a907
mov eax, dword [edi + 4]
xor ebx, ebx
cmp dword [eax + 0x47c], ebx
jle 0x40a8fb
xor ecx, ecx
mov dword [ebp - 4], ecx
nop
mov esi, dword [eax + 0x7c]
add esi, ecx
cmp dword [esi + 4], 0
je 0x40a8e5
mov ecx, edi
call fcn.00409340
mov ecx, edi
call fcn.00408490
test eax, eax
jne 0x40a907
test byte [esi + 0x18], 1
je 0x40a871
mov ecx, dword [edi + 4]
push eax
push 0x17
push dword [esi + 0x14]
lea eax, [ecx + 0x84]
push eax
push dword [ecx + 0x458]
mov ecx, edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
test byte [esi + 0x18], 2
je 0x40a899
mov eax, dword [edi + 4]
mov ecx, edi
push 0
push 0x19
push dword [esi + 0x14]
add eax, 0x84
push eax
push 0
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
test byte [esi + 0x18], 4
je 0x40a8e2
push dword [esi + 0xc]
mov ecx, edi
push 7
call fcn.0040b340
call fcn.0040d240
test eax, eax
je 0x40a8c0
push dword [esi + 0xc]
mov ecx, edi
push 0x18
call fcn.0040b340
mov eax, dword [edi + 4]
mov ecx, edi
push 0
push 7
push dword [esi + 0x14]
add eax, 0x84
push eax
push 0
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0040afe0
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 4]
inc ebx
add ecx, 0x1c
mov dword [ebp - 4], ecx
cmp ebx, dword [eax + 0x47c]
jl 0x40a820
pop ebx
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret