Function at 0x427e60
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x49a760
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8c0
mov eax, dword [0x4bc410]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
xor eax, ebp
push ebx
mov dword [esp + 0x8bc], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x1c]
push 0x19000
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
call sub.MFC71.DLL_operator_new
push str.config_clienttype.ini
lea ecx, [esp + 0x14]
mov ebx, eax
push 0x4bc618
mov dword [edi], 0
push ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], 0x19000
mov dword [esp + 0x34], 0
mov dword [esi], 0
call fcn.00401050
add esp, 0x10
mov ecx, eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0
push str.urlcount
push str.partner
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], esi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
xor eax, eax
test esi, esi
jle 0x4284d0
mov dword [esp + 0xc], eax
jmp 0x427f40
push eax
lea edx, [esp + 0x44]
push str.partnercookieurl_d
push edx
call dword [sym.imp.MSVCR71.dll_sprintf]
push str.config_clienttype.ini
lea eax, [esp + 0x3c]
push 0x4bc618
push eax
call fcn.00401050
add esp, 0x18
mov ecx, eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x800
lea ecx, [esp + 0xc8]
push ecx
push 0x4a095c
lea edx, [esp + 0x50]
push edx
push str.partner
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea eax, [esp + 0xc0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x427fa7
sub eax, edx
mov dword [esp + 0x3c], eax
je 0x4280d6
xor eax, eax
mov ecx, 0x6400
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x28]
push eax
push ebx
push str.operchap
lea ecx, [esp + 0xcc]
push ecx
mov dword [esp + 0x38], 0x19000
call dword [sym.imp.WININET.dll_InternetGetCookieA]
test eax, eax
je 0x4280d6
mov edi, dword [sym.imp.MSVCR71.dll_strstr]
push 0x4a4e80
push ebx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4280d6
cmp byte [esi - 1], 0x66
jne 0x428025
push 0x4a4e80
inc esi
push esi
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4280d6
mov edi, dword [sym.imp.MSVCR71.dll_strchr]
push 0x3b
push esi
call edi
push 0x3d
push esi
mov ebx, eax
call edi
mov esi, eax
add esp, 0x10
xor eax, eax
inc esi
test ebx, ebx
mov ecx, 0x200
lea edi, [esp + 0xc0]
rep stosd dword es:[edi], eax
je 0x42806c
mov ecx, ebx
sub ecx, esi
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x428081
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x428077
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.MSVCR71.dll_atoi]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
push str.subchap
push edx
mov dword [ecx], eax
mov dword [esp + 0x30], 1
call dword [sym.imp.MSVCR71.dll_strstr]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4280d2
cmp byte [esi - 1], 0x66
jne 0x4280f0
push str.subchap
inc esi
push esi
call dword [sym.imp.MSVCR71.dll_strstr]
mov esi, eax
add esp, 8
test esi, esi
jne 0x4280f0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x427f40
jmp 0x4284c3
mov ebx, dword [sym.imp.MSVCR71.dll_strchr]
push 0x3b
push esi
call ebx
push 0x3d
push esi
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xd0]
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
inc esi
test ecx, ecx
je 0x42813b
sub ecx, esi
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x428150
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x428146
lea ecx, [esp + 0xc0]
push ecx
call dword [sym.imp.MSVCR71.dll_atoi]
mov edx, dword [esp + 0x18]
mov edi, dword [sym.imp.MSVCR71.dll_strstr]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
push str.menuname
push eax
mov dword [esp + 0x30], 1
call edi
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4284bf
cmp byte [esi - 1], 0x66
jne 0x4281a7
push str.menuname
inc esi
push esi
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
push 0x3b
push esi
call ebx
push 0x3d
push esi
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xd0]
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
inc esi
test ecx, ecx
je 0x4281ec
sub ecx, esi
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x428201
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4281f7
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.0048e760
add esp, 8
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x8d8], 0
call dword [0x49f214]
lea ecx, [esp + 0x14]
mov dword [esp + 0x8d4], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCR71.dll_strstr]
push str.menuurl
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
cmp byte [esi - 1], 0x66
jne 0x42827c
push str.menuurl
inc esi
push esi
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
push 0x3b
push esi
call ebx
push 0x3d
push esi
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xd0]
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
inc esi
test ecx, ecx
je 0x4282c1
sub ecx, esi
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4282da
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4282d0
lea ecx, [esp + 0xc0]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0048e760
add esp, 8
mov ecx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x8d8], 1
call dword [0x49f214]
lea ecx, [esp + 0x18]
mov dword [esp + 0x8d4], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCR71.dll_strstr]
push str.myurl
push eax
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
cmp byte [esi - 1], 0x66
jne 0x428355
push str.myurl
inc esi
push esi
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
push 0x3b
push esi
call ebx
push 0x3d
push esi
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xd0]
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
inc esi
test ecx, ecx
je 0x42839a
sub ecx, esi
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4283af
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4283a5
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0048e760
add esp, 8
mov ecx, dword [esp + 0x34]
push eax
mov dword [esp + 0x8d8], 2
call dword [0x49f214]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x8d4], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCR71.dll_strstr]
push str.channelurl
push edx
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
cmp byte [esi - 1], 0x66
jne 0x42842a
push str.channelurl
inc esi
push esi
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x4284bf
push 0x3b
push esi
call ebx
push 0x3d
push esi
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
xor eax, eax
mov ecx, 0x200
lea edi, [esp + 0xd0]
add esp, 0x10
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xc]
inc esi
test ecx, ecx
je 0x42846f
sub ecx, esi
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x42848a
lea edx, [esp + 0xc0]
mov eax, esi
sub edx, esi
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x428480
lea ecx, [esp + 0xc0]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.0048e760
add esp, 8
mov ecx, dword [esp + 0x30]
push eax
mov dword [esp + 0x8d8], 3
call dword [0x49f214]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ebx, dword [esp + 0x10]
push ebx
call sub.MFC71.DLL_operator_delete
mov eax, dword [esp + 0x28]
add esp, 4
mov ecx, dword [esp + 0x8cc]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x8c4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00496ace
mov esp, ebp
pop ebp
ret