Function at 0x415130
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x830
push ebx
push esi
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetACP]
mov esi, dword [esp + 0x83c]
mov dword [ebx + 0x18], eax
push esi
call fcn.00414fe0
add esp, 4
test eax, eax
jne 0x415169
mov ecx, ebx
call fcn.004162c0
pop esi
pop ebx
add esp, 0x830
ret 4
mov ecx, dword [ebx + 0x18]
push ebp
push edi
lea eax, [esp + 0x224]
push 0x104
push eax
push 0x104
push esi
push 2
push ecx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x224]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x20]
push 0x104
push eax
push 0x45ed50
push str.lanid
push str.OPTION
call ebp
push 0xa
lea ecx, [esp + 0x20]
push 0
push ecx
call fcn.00422924
add esp, 0xc
test eax, eax
je 0x4151d8
mov dword [ebx + 0x18], eax
mov edx, dword [ebx + 0x18]
lea eax, [esp + 0x638]
push edx
push 0x45a23c
push eax
call fcn.004228b5
lea esi, [ebx + 0x1c]
mov ecx, 0x82
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
add esp, 0xc
lea ecx, [esp + 0x224]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x638]
push ecx
push 0x104
push edx
push 0x45ed50
push eax
push str.Option
call ebp
lea ecx, [esp + 0x1c]
push ecx
push esi
call fcn.00421da6
push esi
call fcn.00421dcb
add esp, 0xc
test eax, eax
jne 0x415252
push str.lan0
push esi
call fcn.00421da6
add esp, 8
mov dword [ebx + 0x18], 0x4e2
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
lea edx, [esp + 0x224]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x20]
push 0x104
push eax
push 0x45ed50
push esi
push str.TITLE
call ebp
mov eax, dword [ebx + 0x18]
push 0
push 0
lea ecx, [ebx + 0x224]
push 0x104
push ecx
lea edx, [esp + 0x2c]
push 0x104
push edx
push 0x200
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
lea edx, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x224]
push ecx
push 0x104
push edx
push 0x45ed50
push esi
push str.PREVINFO
call ebp
mov edx, dword [ebx + 0x18]
push 0
push 0
lea eax, [ebx + 0x42c]
push 0x104
push eax
lea ecx, [esp + 0x2c]
push 0x104
push ecx
push 0x200
push edx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x224]
lea ecx, [esp + 0x1c]
push eax
push 0x104
push ecx
push 0x45ed50
push esi
push str.NEXTINFO
call ebp
mov ecx, dword [ebx + 0x18]
push 0
push 0
lea edx, [ebx + 0x328]
push 0x104
push edx
lea eax, [esp + 0x2c]
push 0x104
push eax
push 0x200
push ecx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
lea edx, [esp + 0x224]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x20]
push 0x104
push eax
push 0x45ed50
push esi
push str.YESINFO
call ebp
mov eax, dword [ebx + 0x18]
push 0
push 0
lea ecx, [ebx + 0x530]
push 0x104
push ecx
lea edx, [esp + 0x2c]
push 0x104
push edx
push 0x200
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
lea edx, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x224]
push ecx
push 0x104
push edx
push 0x45ed50
push esi
push str.NOINFO
call ebp
mov edx, dword [ebx + 0x18]
push 0
push 0
lea eax, [ebx + 0x634]
push 0x104
push eax
lea ecx, [esp + 0x2c]
push 0x104
push ecx
push 0x200
push edx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x224]
lea ecx, [esp + 0x1c]
push eax
push 0x104
push ecx
push 0x45ed50
push esi
push str.FINISHINFO
call ebp
mov ecx, dword [ebx + 0x18]
push 0
push 0
lea edx, [ebx + 0x738]
push 0x104
push edx
lea eax, [esp + 0x2c]
push 0x104
push eax
push 0x200
push ecx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, ebx
call fcn.004162c0
push 0
mov ecx, ebx
call fcn.004150c0
lea edx, [esp + 0x430]
push str.START
push edx
mov dword [ebx + 0x14], eax
mov dword [esp + 0x434], eax
call fcn.00421da6
add esp, 8
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea ebp, [ebx + 4]
sub ecx, esi
mov eax, 0x3e88cb3d
mov edi, esi
imul ecx
sar edx, 7
mov eax, edx
mov dword [esp + 0x10], edi
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x415600
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4154cf
mov edx, esi
mov eax, 0x3e88cb3d
sub edx, ecx
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
mov dword [esp + 0x10], edx
ja 0x4154d7
mov dword [esp + 0x10], 1
test ecx, ecx
jne 0x4154df
xor edx, edx
jmp 0x4154f2
sub esi, ecx
mov eax, 0x3e88cb3d
imul esi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, dword [esp + 0x10]
add eax, edx
test eax, eax
mov dword [esp + 0x18], eax
jge 0x415502
xor eax, eax
mov ecx, eax
shl ecx, 6
add ecx, eax
lea edx, [eax + ecx*2]
shl edx, 2
push edx
call fcn.00433bc5
mov esi, dword [ebp + 4]
add esp, 4
cmp esi, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
je 0x41554d
mov eax, dword [esp + 0x10]
push esi
push eax
call fcn.00416e60
mov edx, dword [esp + 0x18]
add esi, 0x20c
add esp, 8
add edx, 0x20c
cmp esi, edi
mov dword [esp + 0x10], edx
jne 0x415527
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x42c]
push ecx
push edx
call fcn.00416e60
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 8]
add esp, 8
add eax, 0x20c
cmp edi, esi
je 0x41559c
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
push edi
push ecx
call fcn.00416e60
mov ecx, dword [esp + 0x18]
add edi, 0x20c
add esp, 8
add ecx, 0x20c
cmp edi, esi
mov dword [esp + 0x10], ecx
jne 0x415576
mov eax, dword [ebp + 4]
push eax
mov dword [esp + 0x14], eax
call fcn.00433bee
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edx, eax
add esp, 4
shl edx, 6
add edx, eax
lea eax, [eax + edx*2]
lea ecx, [esi + eax*4]
mov eax, dword [ebp + 4]
test eax, eax
mov dword [ebp + 0xc], ecx
jne 0x4155cf
xor edx, edx
jmp 0x4155e5
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x3e88cb3d
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [edx + 1]
mov dword [ebp + 4], esi
mov ecx, eax
shl ecx, 6
add ecx, eax
lea edx, [eax + ecx*2]
lea eax, [esi + edx*4]
mov dword [ebp + 8], eax
jmp 0x4156f9
mov ecx, esi
mov eax, 0x3e88cb3d
sub ecx, edi
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 1
jae 0x415690
cmp edi, esi
mov eax, edi
je 0x41563c
lea ecx, [eax + 0x20c]
push eax
push ecx
mov dword [esp + 0x1c], ecx
call fcn.00416e60
mov eax, dword [esp + 0x1c]
add esp, 8
cmp eax, esi
jne 0x415620
mov esi, dword [ebp + 8]
lea edx, [esp + 0x42c]
mov ecx, esi
mov eax, 0x3e88cb3d
sub ecx, edi
push edx
imul ecx
sar edx, 7
mov eax, edx
mov ecx, 1
shr eax, 0x1f
add edx, eax
sub ecx, edx
push ecx
push esi
mov ecx, ebp
call fcn.00416e20
mov edx, dword [ebp + 8]
mov eax, edi
cmp edi, edx
je 0x4156f2
mov edi, eax
add eax, 0x20c
mov ecx, 0x83
lea esi, [esp + 0x42c]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x415675
jmp 0x4156f2
push esi
push esi
add esi, 0xfffffdf4
mov ecx, ebp
push esi
call fcn.00416de0
mov edx, dword [ebp + 8]
lea eax, [edx - 0x20c]
cmp edi, eax
je 0x4156cd
sub eax, 0x20c
sub edx, 0x20c
mov ecx, 0x83
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x4156ad
mov edi, ecx
lea edx, [edi + 0x20c]
mov eax, edi
cmp edi, edx
je 0x4156f2
mov edi, eax
add eax, 0x20c
mov ecx, 0x83
lea esi, [esp + 0x42c]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x4156d9
add dword [ebp + 8], 0x20c
mov edx, dword [ebx + 0x14]
lea eax, [esp + 0x224]
push edx
push eax
push str.START
mov ecx, ebx
call fcn.004158b0
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x830
ret 4