Function at 0x10002ac0
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x1a0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
mov ebp, dword [esp + 0x1ac]
add ebp, 4
push ebp
push 0x100
lea eax, [esp + 0xb0]
push eax
push 0x100186bb
push str.TocEntries
push str.Disc
call ebx
cmp eax, 1
jb 0x10002b3b
push 0xa
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0xb0]
push edx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xb0]
push eax
push 0x100186bb
push str.Sessions
push str.Disc
call ebx
cmp eax, 1
jae 0x10002b46
pop ebp
xor eax, eax
pop ebx
add esp, 0x1a0
ret
push esi
mov esi, dword [esp + 0x1b4]
push edi
xor eax, eax
mov ecx, 0x50f0
mov edi, esi
rep stosd dword es:[edi], eax
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
stosw word es:[edi], ax
push edx
mov byte [esi + 6], 1
call fcn.1000bd01
mov byte [esi + 7], al
mov byte [esi + 0x691], al
mov eax, dword [esp + 0x28]
imul eax, eax, 0xb
add eax, 2
mov byte [esi + 4], ah
mov byte [esi + 5], al
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
add esp, 0xc
cmp ecx, 2
jae 0x10002be5
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x10018698
push str.DataTracksScrambled
push str.Disc
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
add esp, 0xc
mov byte [esi + 0x690], al
jmp 0x10002bec
mov byte [esi + 0x690], 0
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x10018680
push str.CDTextLength
push str.Disc
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
mov ecx, dword [esp + 0x1c8]
add esp, 0xc
test ax, ax
mov word [ecx], ax
je 0x10002d61
lea edx, [eax + 2]
movzx eax, ax
mov dword [esp + 0x18], edx
cdq
mov esi, 0x12
idiv esi
lea edi, [ecx + 6]
test edx, edx
jne 0x100030d7
mov edx, dword [esp + 0x18]
movzx eax, ax
xor esi, esi
test eax, eax
mov byte [ecx + 2], dh
mov byte [ecx + 3], dl
mov byte [ecx + 4], 0
mov byte [ecx + 5], 0
mov dword [esp + 0x14], eax
jle 0x10002d5a
mov edi, edi
push esi
lea eax, [esp + 0x64]
push str.Entry__d
push eax
mov dword [esp + 0x24], edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x100186bb
lea edx, [esp + 0x70]
push edx
push str.CDText
call ebx
cmp eax, 0x2f
jb 0x100030d7
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xf0]
push str._x__x__x__x__x__x__x__x__x__x__x__x__x__x__x__x
push ecx
call fcn.1000bb0e
add esp, 0x48
cmp eax, 0x10
jne 0x100030d7
xor eax, eax
mov dl, byte [esp + eax*4 + 0x20]
mov byte [edi], dl
inc edi
inc eax
cmp eax, 0xf
jle 0x10002d30
mov eax, dword [esp + 0x18]
push eax
add edi, 2
call fcn.10001000
mov eax, dword [esp + 0x18]
add esp, 4
inc esi
cmp esi, eax
jl 0x10002c80
mov esi, dword [esp + 0x1b8]
movzx eax, word [esp + 0x1c]
xor edi, edi
test eax, eax
mov dword [esp + 0x14], eax
jle 0x100030c7
add esi, 9
jmp 0x10002d80
push edi
lea ecx, [esp + 0x64]
push str.Entry__d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push ebp
push 0x100
lea edx, [esp + 0xb8]
push edx
push 0x100186bb
push str.Session
lea eax, [esp + 0x74]
push eax
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
mov byte [esi - 1], al
lea eax, [esp + 0xb8]
push eax
push 0x100186bb
push str.Point
lea ecx, [esp + 0x74]
push ecx
call ebx
cmp eax, 1
jb 0x100030d7
push 0x10
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x100186bb
push 0x10018618
lea edx, [esp + 0x74]
push edx
mov byte [esi + 2], al
call ebx
cmp eax, 1
jb 0x100030d7
push 0x10
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.1000bd01
mov dl, byte [esi]
add esp, 0xc
push ebp
shl al, 4
and dl, 0xf
push 0x100
or dl, al
lea eax, [esp + 0xb8]
push eax
push 0x100186bb
push str.Control
lea ecx, [esp + 0x74]
push ecx
mov byte [esi], dl
call ebx
cmp eax, 1
jb 0x100030d7
push 0x10
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
mov cl, byte [esi]
add esp, 0xc
push ebp
xor cl, al
mov al, byte [esi]
push 0x100
lea edx, [esp + 0xb8]
push edx
and cl, 0xf
xor al, cl
push 0x100186bb
mov byte [esi], al
push str.TrackNo
lea eax, [esp + 0x74]
push eax
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
mov byte [esi + 1], al
lea eax, [esp + 0xb8]
push eax
push 0x100186bb
push str.AMin
lea ecx, [esp + 0x74]
push ecx
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x100186bb
push str.ASec
lea edx, [esp + 0x74]
push edx
mov byte [esi + 3], al
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
lea edx, [esp + 0xb8]
push edx
push 0x100186bb
mov byte [esi + 4], al
push str.AFrame
lea eax, [esp + 0x74]
push eax
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
mov byte [esi + 5], al
lea eax, [esp + 0xb8]
push eax
push 0x100186bb
push str.Zero
lea ecx, [esp + 0x74]
push ecx
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
lea ecx, [esp + 0xb8]
push ecx
push 0x100186bb
push str.PMin
lea edx, [esp + 0x74]
push edx
mov byte [esi + 6], al
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
lea edx, [esp + 0xb8]
push edx
push 0x100186bb
mov byte [esi + 7], al
push str.PSec
lea eax, [esp + 0x74]
push eax
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
push edx
call fcn.1000bd01
add esp, 0xc
push ebp
push 0x100
mov byte [esi + 8], al
lea eax, [esp + 0xb8]
push eax
push 0x100186bb
push str.PFrame
lea ecx, [esp + 0x74]
push ecx
call ebx
cmp eax, 1
jb 0x100030d7
push 0xa
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.1000bd01
add esp, 0xc
mov byte [esi + 9], al
mov eax, dword [esp + 0x14]
inc edi
add esi, 0xb
cmp edi, eax
jl 0x10002d80
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1a0
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1a0
ret