Function at 0x40b800
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x798
push edi
mov dword [ebp - 0x798], ecx
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
cmp dword [ecx + 0x47c], 0
jg 0x40b82c
mov eax, 1
jmp 0x40bcd0
mov dword [ebp - 0x408], 0
mov dword [ebp - 0x404], 0
jmp 0x40b851
mov edx, dword [ebp - 0x408]
add edx, 1
mov dword [ebp - 0x408], edx
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x408]
cmp edx, dword [ecx + 0x47c]
jge 0x40b895
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x408]
imul edx, edx, 0x1c
mov eax, dword [ecx + 0x7c]
cmp dword [eax + edx + 4], 0
je 0x40b893
mov ecx, dword [ebp - 0x404]
add ecx, 1
mov dword [ebp - 0x404], ecx
jmp 0x40b842
cmp dword [ebp - 0x404], 0
jg 0x40b8a8
mov eax, 1
jmp 0x40bcd0
push 0
push 0
push 0
push 0x42a890
push 0x200
lea edx, [ebp - 0x200]
push edx
mov ecx, 0x42fdb8
call fcn.0041c3a0
push 0
push 0
push 0
push str.install_apps
push 0x200
lea eax, [ebp - 0x400]
push eax
mov ecx, 0x42fdb8
call fcn.0041c3a0
lea ecx, [ebp - 0x400]
push ecx
lea edx, [ebp - 0x200]
push edx
mov ecx, dword [ebp - 0x798]
call fcn.0040c650
mov ecx, dword [ebp - 0x798]
call fcn.0040dc60
test eax, eax
je 0x40b919
xor eax, eax
jmp 0x40bcd0
push 0x42a8ac
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x46c]
push edx
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
add ecx, 0x188
push ecx
mov edx, dword [ebp - 0x798]
mov eax, dword [edx + 0x180]
push eax
mov ecx, dword [ebp - 0x798]
call fcn.0040d9d0
test eax, eax
jne 0x40b961
xor eax, eax
jmp 0x40bcd0
push 0x42a8b0
mov ecx, dword [ebp - 0x798]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x74]
push eax
call fcn.00420120
add esp, 8
test eax, eax
jne 0x40b989
mov eax, 1
jmp 0x40bcd0
mov ecx, dword [ebp - 0x798]
add ecx, 0x184
push ecx
mov edx, dword [ebp - 0x798]
mov eax, dword [edx + 4]
add eax, 0x188
push eax
push 0x42a8b8
mov ecx, dword [0x42f060]
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 0x478], 0
mov ecx, 0x18
xor eax, eax
lea edi, [ebp - 0x477]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x103
lea edx, [ebp - 0x790]
push edx
mov eax, dword [0x42fdb0]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
lea ecx, [ebp - 0x790]
push ecx
call fcn.0041e720
add esp, 8
mov dword [ebp - 0x40c], eax
cmp dword [ebp - 0x40c], 0
jne 0x40ba0f
xor eax, eax
jmp 0x40bcd0
mov edx, dword [ebp - 0x40c]
mov byte [edx + 1], 0
push str.setup.inf
lea eax, [ebp - 0x790]
push eax
call fcn.0041e1c0
add esp, 8
lea ecx, [ebp - 0x790]
push ecx
push 0x103
lea edx, [ebp - 0x688]
push edx
push 0x42a8ca
push str.apps
push str.Contents
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x42a8e0
lea eax, [ebp - 0x688]
push eax
call fcn.00420859
add esp, 8
mov dword [ebp - 0x40c], eax
cmp dword [ebp - 0x40c], 0
je 0x40ba94
mov ecx, dword [ebp - 0x40c]
push ecx
push str._s.exe
lea edx, [ebp - 0x478]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x478]
push eax
mov ecx, dword [ebp - 0x798]
mov edx, dword [ecx + 4]
add edx, 0x188
push edx
push str._s_s
lea eax, [ebp - 0x580]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov ecx, dword [ebp - 0x798]
add ecx, 0x184
push ecx
lea edx, [ebp - 0x580]
push edx
push str.PATH
mov eax, dword [0x42f060]
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 0x798]
call fcn.0040dc60
test eax, eax
je 0x40bafb
xor eax, eax
jmp 0x40bcd0
mov dword [ebp - 0x408], 0
jmp 0x40bb16
mov ecx, dword [ebp - 0x408]
add ecx, 1
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp - 0x798]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x408]
cmp ecx, dword [eax + 0x47c]
jge 0x40bccb
mov edx, dword [ebp - 0x798]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x408]
imul ecx, ecx, 0x1c
add ecx, dword [eax + 0x7c]
mov dword [ebp - 0x794], ecx
mov edx, dword [ebp - 0x794]
cmp dword [edx + 4], 0
je 0x40bcc6
mov ecx, dword [ebp - 0x798]
call fcn.0040c600
mov ecx, dword [ebp - 0x798]
call fcn.0040dc60
test eax, eax
je 0x40bb7d
xor eax, eax
jmp 0x40bcd0
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x18]
and ecx, 1
je 0x40bbe2
push 0
push 0x17
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x798]
mov edx, dword [ecx + 4]
add edx, 0x188
push edx
mov eax, dword [ebp - 0x798]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x458]
push edx
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x794]
mov edx, dword [ecx + 8]
push edx
mov ecx, dword [ebp - 0x798]
call fcn.0040b480
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x18]
and ecx, 2
je 0x40bc39
push 0
push 0x19
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x798]
mov edx, dword [ecx + 4]
add edx, 0x188
push edx
push 0
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x794]
mov edx, dword [ecx + 8]
push edx
mov ecx, dword [ebp - 0x798]
call fcn.0040b480
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x18]
and ecx, 4
je 0x40bcc6
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 0xc]
push eax
push 7
mov ecx, dword [ebp - 0x798]
call fcn.0040b280
call fcn.0040f580
test eax, eax
je 0x40bc7e
mov ecx, dword [ebp - 0x794]
mov edx, dword [ecx + 0xc]
push edx
push 0x18
mov ecx, dword [ebp - 0x798]
call fcn.0040b280
push 0
push 7
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x798]
mov eax, dword [edx + 4]
add eax, 0x188
push eax
push 0
mov ecx, dword [ebp - 0x794]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x794]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x794]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x798]
call fcn.0040b480
jmp 0x40bb07
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret