Function at 0x404580
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3f00
call fcn.004b6e90
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x4f82f6]
mov byte [ebp - 0x104], al
push 0xfe
push 0
lea ecx, [ebp - 0x103]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f82f8]
mov byte [ebp - 0xd04], dl
push 0xfe
push 0
lea eax, [ebp - 0xd03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f82fa]
mov byte [ebp - 0x404], cl
push 0xfe
push 0
lea edx, [ebp - 0x403]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f82fc]
mov byte [ebp - 0x604], al
push 0xfe
push 0
lea ecx, [ebp - 0x603]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f82fd]
mov byte [ebp - 0x304], dl
push 0xfe
push 0
lea eax, [ebp - 0x303]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f82fe]
mov byte [ebp - 0x204], cl
push 0xfe
push 0
lea edx, [ebp - 0x203]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f82ff]
mov byte [ebp - 0xf04], al
push 0xfe
push 0
lea ecx, [ebp - 0xf03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f8300]
mov byte [ebp - 0xe04], dl
push 0xfe
push 0
lea eax, [ebp - 0xe03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f8302]
mov byte [ebp - 0x2f44], cl
push 0xf9f
push 0
lea edx, [ebp - 0x2f43]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f8304]
mov byte [ebp - 0x1fa4], al
push 0xf9f
push 0
lea ecx, [ebp - 0x1fa3]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f8306]
mov byte [ebp - 0x3ee4], dl
push 0xf9f
push 0
lea eax, [ebp - 0x3ee3]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f8309]
mov byte [ebp - 0x504], cl
push 0xfe
push 0
lea edx, [ebp - 0x503]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f830b]
mov byte [ebp - 0xc04], al
push 0xfe
push 0
lea ecx, [ebp - 0xc03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f830c]
mov byte [ebp - 0x704], dl
push 0xfe
push 0
lea eax, [ebp - 0x703]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f8310]
mov byte [ebp - 0x804], cl
push 0xfe
push 0
lea edx, [ebp - 0x803]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f8311]
mov byte [ebp - 0xb04], al
push 0xfe
push 0
lea ecx, [ebp - 0xb03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4f8312]
mov byte [ebp - 0xa04], dl
push 0xfe
push 0
lea eax, [ebp - 0xa03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4f8314]
mov byte [ebp - 0x904], cl
push 0xfe
push 0
lea edx, [ebp - 0x903]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4f8315]
mov byte [ebp - 0x1004], al
push 0xfe
push 0
lea ecx, [ebp - 0x1003]
push ecx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x3ef4], 0
mov dword [ebp - 0x3ee8], 0
mov dword [ebp - 0x3ef0], 0
mov dword [ebp - 0x3ef8], 0
mov dword [ebp - 0x3eec], 0
mov dword [0x4f84b0], 0
mov dword [0x4f84b4], 0
mov dword [0x4f84b8], 0
push str.CoursesInstalled
push 1
call fcn.004417b0
add esp, 8
push 0x4d4620
push 0x4fcad8
push 0x4d4630
lea edx, [ebp - 0x1004]
push edx
call fcn.004b6e08
add esp, 0x10
push 0x4d4640
push 0x4fa370
push 0x4d4650
lea eax, [ebp - 0xb04]
push eax
call fcn.004b6e08
add esp, 0x10
lea ecx, [ebp - 0xb04]
push ecx
call fcn.004196c0
add esp, 4
test eax, eax
jne 0x40491d
push 0x4ed098
push 0x4d4670
push 0x4fa370
call fcn.0045b150
add esp, 0xc
lea edx, [ebp - 0xb04]
push edx
call fcn.004196c0
add esp, 4
test eax, eax
jne 0x40491d
mov eax, 1
imul eax, eax, 0
mov dword [ebp - 0x3f00], eax
cmp dword [ebp - 0x3f00], 0xff
jae 0x40490a
jmp 0x40490f
call fcn.004b64ae
mov ecx, dword [ebp - 0x3f00]
mov byte [ebp + ecx - 0xb04], 0
push 0x4d4690
push 0x4fc4b8
push 0x4d4698
lea edx, [ebp - 0xd04]
push edx
call fcn.004b6e08
add esp, 0x10
lea eax, [ebp - 0x3ee8]
push eax
push 1
push 1
lea ecx, [ebp - 0x3eec]
push ecx
lea edx, [ebp - 0x304]
push edx
push 0x4d46a0
lea eax, [ebp - 0xd04]
push eax
push 2
call fcn.00497900
add esp, 0x20
lea ecx, [ebp - 0x304]
push ecx
call fcn.004ca3dc
add esp, 4
cmp dword [ebp - 0x3ee8], 0
jne 0x404987
jmp 0x4051b2
lea edx, [ebp - 0x304]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 8
je 0x4049a0
jmp 0x4051b2
mov dword [ebp - 0x3ef0], 0
mov dword [ebp - 0x3ef8], 0
mov eax, 1
imul eax, eax, 0
mov dword [ebp - 0x3efc], eax
cmp dword [ebp - 0x3efc], 0xff
jae 0x4049d0
jmp 0x4049d5
call fcn.004b64ae
mov ecx, dword [ebp - 0x3efc]
mov byte [ebp + ecx - 0x804], 0
lea edx, [ebp - 0x304]
push edx
call fcn.0042be20
add esp, 4
push eax
lea eax, [ebp - 0x604]
push eax
call fcn.004b5e60
add esp, 8
lea ecx, [ebp - 0x604]
push ecx
push 0xff
lea edx, [ebp - 0xf04]
push edx
push 0x4f831b
push 0x4d46dc
push 0x4d46e8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x3ef4], eax
cmp dword [ebp - 0x3ef4], 0
je 0x4051b2
lea eax, [ebp - 0x604]
push eax
push 0xff
lea ecx, [ebp - 0x104]
push ecx
push 0x4f831d
push 0x4d46f4
push 0x4d4700
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x104]
test eax, eax
je 0x404a94
lea ecx, [ebp - 0x104]
push ecx
push str.___lang_s_
lea edx, [ebp - 0x804]
push edx
call fcn.004b6e08
add esp, 0xc
lea eax, [ebp - 0x604]
push eax
push 0xff
lea ecx, [ebp - 0x104]
push ecx
push 0x4f8321
push 0x4d4718
push 0x4d471c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x104]
push edx
call fcn.004ca5db
add esp, 4
push 0x4d4728
lea eax, [ebp - 0x104]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x404b52
mov dword [0x4f84b0], 1
lea ecx, [ebp - 0x604]
push ecx
push 0xff
lea edx, [ebp - 0x104]
push edx
push 0x4f8324
push 0x4d473c
push 0x4d474c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x104]
push eax
call fcn.004ca5db
add esp, 4
push 0x4d4774
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x404b48
mov dword [0x4f84b4], 1
jmp 0x404b52
mov dword [0x4f84b8], 1
lea edx, [ebp - 0x604]
push edx
push 0xff
lea eax, [ebp - 0xe04]
push eax
push 0x4f8326
push 0x4d478c
push 0x4d4794
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xe04]
push ecx
call fcn.004ca5db
add esp, 4
lea edx, [ebp - 0xe04]
push edx
lea eax, [ebp - 0xf04]
push eax
push 0x4d5dd0
push 0x4d47a8
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b6e08
add esp, 0x14
lea edx, [ebp - 0x604]
push edx
push 0xff
lea eax, [ebp - 0xa04]
push eax
push 0x4f8327
push 0x4d47c0
push 0x4d47d8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0xa04]
test edx, edx
jne 0x404c16
lea eax, [ebp - 0x1004]
push eax
push 0xff
lea ecx, [ebp - 0xa04]
push ecx
push 0x4f8328
lea edx, [ebp - 0x304]
push edx
push 0x4d47e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xb04]
push eax
push 0xff
lea ecx, [ebp - 0x904]
push ecx
push 0x4f8329
lea edx, [ebp - 0x304]
push edx
push 0x4d4808
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, 1
imul eax, eax, 3
movsx ecx, byte [ebp + eax - 0x904]
cmp ecx, 0x7e
jne 0x404c6b
lea edx, [ebp - 0x900]
push edx
lea eax, [ebp - 0x904]
push eax
call fcn.004b5e60
add esp, 8
lea ecx, [ebp - 0x904]
push ecx
lea edx, [ebp - 0xa04]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jl 0x404ca2
lea eax, [ebp - 0xa04]
push eax
push 0x4d4818
lea ecx, [ebp - 0x704]
push ecx
call fcn.004b6e08
add esp, 0xc
jmp 0x404cc4
lea edx, [ebp - 0x904]
push edx
lea eax, [ebp - 0xa04]
push eax
push str.___s__s_
lea ecx, [ebp - 0x704]
push ecx
call fcn.004b6e08
add esp, 0x10
lea edx, [ebp - 0x704]
push edx
lea eax, [ebp - 0x104]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0x304]
push ecx
push 0x5c
push 0x4d482c
push 0x4fc4b8
push 0x4d4834
lea edx, [ebp - 0x404]
push edx
call fcn.004b6e08
add esp, 0x18
push 3
push 0x4d4840
lea eax, [ebp - 0x304]
push eax
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x404d34
mov dword [ebp - 0x3ef0], 1
mov dword [0x4f84bc], 1
jmp 0x404f96
lea ecx, [ebp - 0x404]
push ecx
call fcn.00419490
add esp, 4
mov dword [ebp - 0x3ef8], eax
push str.___content:
lea edx, [ebp - 0x504]
push edx
call fcn.004b5e60
add esp, 8
lea eax, [ebp - 0x3ee8]
push eax
push 0
push 1
lea ecx, [ebp - 0x3eec]
push ecx
lea edx, [ebp - 0x204]
push edx
push 0x4d4854
lea eax, [ebp - 0x404]
push eax
push 3
call fcn.00497900
add esp, 0x20
lea ecx, [ebp - 0x204]
push ecx
call fcn.004ca3dc
add esp, 4
push str.DISC
lea edx, [ebp - 0x204]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x404de7
lea eax, [ebp - 0x1ff]
push eax
lea ecx, [ebp - 0x504]
push ecx
call fcn.004b5e70
add esp, 8
push 0x4d4860
lea edx, [ebp - 0x504]
push edx
call fcn.004b5e70
add esp, 8
mov dword [ebp - 0x3ef0], 1
lea eax, [ebp - 0x3ee8]
push eax
push 0
push 0
lea ecx, [ebp - 0x3eec]
push ecx
lea edx, [ebp - 0x204]
push edx
push 0x4d4864
lea eax, [ebp - 0x404]
push eax
push 3
call fcn.00497900
add esp, 0x20
test eax, eax
je 0x404d8c
lea ecx, [ebp - 0x3ee8]
push ecx
push 1
push 1
lea edx, [ebp - 0x3eec]
push edx
lea eax, [ebp - 0x204]
push eax
push 0x4d4868
lea ecx, [ebp - 0x404]
push ecx
push 3
call fcn.00497900
add esp, 0x20
lea edx, [ebp - 0x204]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 3
jne 0x404e8b
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x504]
push ecx
call fcn.004b5e70
add esp, 8
push 0x4d4888
lea edx, [ebp - 0x504]
push edx
call fcn.004b5e70
add esp, 8
lea eax, [ebp - 0x3ee8]
push eax
push 1
push 0
lea ecx, [ebp - 0x3eec]
push ecx
lea edx, [ebp - 0x204]
push edx
push 0x4d4890
lea eax, [ebp - 0x404]
push eax
push 3
call fcn.00497900
add esp, 0x20
test eax, eax
je 0x404e4d
push str.___launch:
lea ecx, [ebp - 0xc04]
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0x304]
push edx
push 0x5c
lea eax, [ebp - 0xd04]
push eax
push 0x4d48c4
lea ecx, [ebp - 0x704]
push ecx
call fcn.004b6e08
add esp, 0x14
lea edx, [ebp - 0x3ee8]
push edx
push 1
push 1
lea eax, [ebp - 0x3eec]
push eax
lea ecx, [ebp - 0x204]
push ecx
push 0x4d48cc
lea edx, [ebp - 0x704]
push edx
push 3
call fcn.00497900
add esp, 0x20
lea eax, [ebp - 0x204]
push eax
call fcn.004b5f60
add esp, 4
cmp eax, 3
jne 0x404f63
lea ecx, [ebp - 0x204]
push ecx
lea edx, [ebp - 0xc04]
push edx
call fcn.004b5e70
add esp, 8
push 0x4d48e4
lea eax, [ebp - 0xc04]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0x3ee8]
push ecx
push 1
push 0
lea edx, [ebp - 0x3eec]
push edx
lea eax, [ebp - 0x204]
push eax
push 0x4d48ec
lea ecx, [ebp - 0x704]
push ecx
push 3
call fcn.00497900
add esp, 0x20
test eax, eax
je 0x404f25
cmp dword [ebp - 0x3ef0], 1
jne 0x40504e
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x2f44]
test eax, eax
je 0x404fcb
push 0x4d4918
lea ecx, [ebp - 0x2f44]
push ecx
call fcn.004b5e70
add esp, 8
lea edx, [ebp - 0x104]
push edx
lea eax, [ebp - 0x2f44]
push eax
call fcn.004b5e70
add esp, 8
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x504]
test edx, edx
je 0x405049
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x804]
test ecx, ecx
je 0x40501f
lea edx, [ebp - 0x804]
push edx
lea eax, [ebp - 0x2f44]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x2f44]
push edx
call fcn.004b5e70
add esp, 8
push 0x4d491c
lea eax, [ebp - 0x2f44]
push eax
call fcn.004b5e70
add esp, 8
jmp 0x405115
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x1fa4]
test edx, edx
je 0x405076
push 0x4d4938
lea eax, [ebp - 0x1fa4]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
lea edx, [ebp - 0x1fa4]
push edx
call fcn.004b5e70
add esp, 8
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x804]
test ecx, ecx
je 0x4050b6
lea edx, [ebp - 0x804]
push edx
lea eax, [ebp - 0x1fa4]
push eax
call fcn.004b5e70
add esp, 8
lea ecx, [ebp - 0xc04]
push ecx
lea edx, [ebp - 0x1fa4]
push edx
call fcn.004b5e70
add esp, 8
push 0x4d4940
lea eax, [ebp - 0x1fa4]
push eax
call fcn.004b5e70
add esp, 8
cmp dword [ebp - 0x3ef8], 1
jne 0x405115
push 0x4d4958
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x405115
push str.____ERROR___disc.xx_files_missing_
lea edx, [ebp - 0x1fa4]
push edx
call fcn.004b5e70
add esp, 8
push 0x4fa370
push 0x4fc4b8
call fcn.004bab10
add esp, 8
test eax, eax
je 0x4051b2
lea eax, [ebp - 0x304]
push eax
push 0x5c
push 0x4d49b0
push 0x4fa370
push 0x4d49bc
lea ecx, [ebp - 0x404]
push ecx
call fcn.004b6e08
add esp, 0x18
lea edx, [ebp - 0x404]
push edx
call fcn.00419490
add esp, 4
mov dword [ebp - 0x3ef4], eax
cmp dword [ebp - 0x3ef4], 1
jne 0x4051b2
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x3ee4]
test ecx, ecx
je 0x40519c
push 0x4d49c8
lea edx, [ebp - 0x3ee4]
push edx
call fcn.004b5e70
add esp, 8
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x3ee4]
push ecx
call fcn.004b5e70
add esp, 8
lea edx, [ebp - 0x3ee8]
push edx
push 1
push 0
lea eax, [ebp - 0x3eec]
push eax
lea ecx, [ebp - 0x304]
push ecx
push 0x4d49cc
lea edx, [ebp - 0xd04]
push edx
push 2
call fcn.00497900
add esp, 0x20
test eax, eax
je 0x40496a
lea eax, [ebp - 0x2f44]
push eax
call fcn.004b5f60
add esp, 4
test eax, eax
jne 0x40522a
lea ecx, [ebp - 0x1fa4]
push ecx
call fcn.004b5f60
add esp, 4
test eax, eax
jne 0x40522a
push str.Courses_Installed:_None
push 1
mov edx, dword [0x4f84c0]
push edx
call fcn.00403ac0
add esp, 0xc
jmp 0x405316
lea eax, [ebp - 0x1fa4]
push eax
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x405295
lea ecx, [ebp - 0x2f44]
push ecx
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x405268
push 0x4d4a18
push 1
mov edx, dword [0x4f84c0]
push edx
call fcn.00403ac0
add esp, 0xc
jmp 0x40527d
push str.Courses_Installed_CD_Based__not_Discless_:
push 1
mov eax, dword [0x4f84c0]
push eax
call fcn.00403ac0
add esp, 0xc
lea ecx, [ebp - 0x1fa4]
push ecx
push 0
mov edx, dword [0x4f84c0]
push edx
call fcn.00403ac0
add esp, 0xc
lea eax, [ebp - 0x2f44]
push eax
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x4052d5
push str.Courses_Installed_Discless:
push 1
mov ecx, dword [0x4f84c0]
push ecx
call fcn.00403ac0
add esp, 0xc
lea edx, [ebp - 0x2f44]
push edx
push 0
mov eax, dword [0x4f84c0]
push eax
call fcn.00403ac0
add esp, 0xc
lea ecx, [ebp - 0x3ee4]
push ecx
call fcn.004b5f60
add esp, 4
test eax, eax
je 0x405316
push str.Courses_Installed_Discless_on_client:
push 1
mov edx, dword [0x4f84c0]
push edx
call fcn.00403ac0
add esp, 0xc
lea eax, [ebp - 0x3ee4]
push eax
push 0
mov ecx, dword [0x4f84c0]
push ecx
call fcn.00403ac0
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret