Function at 0x452130
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x40c], 0
mov al, byte [0x54be28]
mov byte [ebp - 0x404], al
push 0xfe
push 0
lea ecx, [ebp - 0x403]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x54be29]
mov byte [ebp - 0x304], dl
push 0xfe
push 0
lea eax, [ebp - 0x303]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x54be2a]
mov byte [ebp - 0x104], cl
push 0xfe
push 0
lea edx, [ebp - 0x103]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x54be2b]
mov byte [ebp - 0x204], al
push 0xfe
push 0
lea ecx, [ebp - 0x203]
push ecx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x418], 0
mov dword [ebp - 0x408], 0
mov dword [ebp - 0x414], 0
mov edx, dword [ebp + 8]
push edx
push str.GetInfoAboutProduct:__s
push 4
call fcn.004417b0
add esp, 0xc
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax + 0x10e], 0
mov edx, 1
imul edx, edx, 0
mov eax, dword [ebp + 0xc]
mov byte [eax + edx + 0x136], 0
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0xc]
mov byte [edx + ecx + 0xf], 0
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax + 0x2b0], 0
xor edx, edx
mov eax, dword [ebp + 0xc]
mov word [eax + 0x29c], dx
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov word [edx + 0x29e], cx
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x2a0], ax
xor edx, edx
mov eax, dword [ebp + 0xc]
mov word [eax + 0x29a], dx
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov word [edx + 0x2a2], cx
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x2a6], ax
mov edx, 1
mov eax, dword [ebp + 0xc]
mov word [eax + 0x2a4], dx
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov word [edx + 0x2a8], cx
mov dword [ebp - 0x414], 0
jmp 0x4522d5
mov eax, dword [ebp - 0x414]
add eax, 1
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0x14
jge 0x4522f0
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x414]
mov byte [ecx + 0x140], 0
jmp 0x4522c6
push 0x5c
mov edx, dword [ebp + 8]
push edx
push str._s_cSETUP.INI
lea eax, [ebp - 0x404]
push eax
call fcn.004b6e08
add esp, 0x10
push 2
lea ecx, [ebp - 0x404]
push ecx
call fcn.0048e0a0
add esp, 8
lea edx, [ebp - 0x404]
push edx
push 0xff
lea eax, [ebp - 0x304]
push eax
push 0x54be2c
push str.engine_ver
push str.dyned
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x304]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x190
push edx
call fcn.004b5e60
add esp, 8
push 0x4e5544
push 0x5c
mov eax, dword [ebp + 8]
push eax
push 0x4e5550
lea ecx, [ebp - 0x404]
push ecx
call fcn.004b6e08
add esp, 0x14
push 2
lea edx, [ebp - 0x404]
push edx
call fcn.0048e0a0
add esp, 8
push 0x4e5558
lea eax, [ebp - 0x404]
push eax
call fcn.0041a470
add esp, 8
mov dword [ebp - 0x40c], eax
cmp dword [ebp - 0x40c], 0
jne 0x4523c6
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0xc]
mov byte [edx + ecx], 0
or eax, 0xffffffff
jmp 0x452927
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x29e], ax
xor edx, edx
mov eax, dword [ebp + 0xc]
mov word [eax + 0x2a4], dx
mov ecx, dword [ebp - 0x40c]
push ecx
push 0xff
lea edx, [ebp - 0x304]
push edx
call fcn.004b6cc9
add esp, 0xc
push 0x4e555c
lea eax, [ebp - 0x304]
push eax
call fcn.004b6b14
add esp, 8
push str.copyright
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x452469
push 0x4e556c
lea edx, [ebp - 0x304]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x452469
push 0x4e4d7c
lea eax, [ebp - 0x304]
push eax
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x410], eax
cmp dword [ebp - 0x410], 0
je 0x452469
mov ecx, dword [ebp - 0x410]
mov byte [ecx], 0
push 0x4e4d80
lea edx, [ebp - 0x304]
push edx
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x410], eax
cmp dword [ebp - 0x410], 0
jne 0x452491
jmp 0x4528a6
mov eax, dword [ebp - 0x410]
lea ecx, [ebp - 0x304]
sub eax, ecx
mov dword [ebp - 0x418], eax
mov edx, dword [ebp - 0x418]
push edx
lea eax, [ebp - 0x304]
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b69f0
add esp, 0xc
mov edx, dword [ebp - 0x418]
mov dword [ebp - 0x41c], edx
cmp dword [ebp - 0x41c], 0xff
jae 0x4524dc
jmp 0x4524e1
call fcn.004b64ae
mov eax, dword [ebp - 0x41c]
mov byte [ebp + eax - 0x104], 0
mov ecx, dword [ebp - 0x418]
lea edx, [ebp + ecx - 0x303]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.004b5e60
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
push 3
call fcn.0042d840
add esp, 8
lea edx, [ebp - 0x204]
push edx
push 3
call fcn.0042d840
add esp, 8
lea eax, [ebp - 0x104]
push eax
call fcn.004ca5db
add esp, 4
push 0x4e4d84
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x452594
push 0x4e4d90
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x452594
push 0x4e4d9c
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x452594
lea ecx, [ebp - 0x204]
push ecx
call fcn.004ca5db
add esp, 4
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x204]
cmp eax, 0x79
jne 0x4525b5
mov dword [ebp - 0x408], 1
jmp 0x4525eb
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x204]
cmp edx, 0x6e
jne 0x4525d6
mov dword [ebp - 0x408], 0
jmp 0x4525eb
lea eax, [ebp - 0x204]
push eax
call fcn.004b98c7
add esp, 4
mov dword [ebp - 0x408], eax
push str.language
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452620
lea edx, [ebp - 0x204]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x10e
push eax
call fcn.004b5e60
add esp, 8
jmp 0x4528a6
push str.version
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452655
lea edx, [ebp - 0x204]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x136
push eax
call fcn.004b5e60
add esp, 8
jmp 0x4528a6
push 0x4e4dbc
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452688
lea edx, [ebp - 0x204]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0xf
push eax
call fcn.004b5e60
add esp, 8
jmp 0x4528a6
push str.abbreviation
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4526cf
lea edx, [ebp - 0x204]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x2b0
push eax
call fcn.004b5e60
add esp, 8
mov ecx, dword [ebp + 0xc]
add ecx, 0x2b0
push ecx
call fcn.004ca3dc
add esp, 4
jmp 0x4528a6
push str.versionname
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452705
lea eax, [ebp - 0x204]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x154
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x4528a6
push 0x4e4de4
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452733
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x29c], cx
jmp 0x4528a6
push str.tutor
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452761
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x29e], cx
jmp 0x4528a6
push str.english_only
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x45278f
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x2a0], cx
jmp 0x4528a6
push str.product_number
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4527bd
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x29a], cx
jmp 0x4528a6
push str.force_local
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4527eb
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x2a2], cx
jmp 0x4528a6
push str.old_lh
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452819
mov eax, dword [ebp + 0xc]
mov cx, word [ebp - 0x408]
mov word [eax + 0x2a4], cx
jmp 0x4528a6
push str.babel
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452842
mov eax, 1
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x2a4], ax
jmp 0x4528a6
push str.fix_level
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x452875
lea eax, [ebp - 0x204]
push eax
call fcn.004b98c7
add esp, 4
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x2a6], ax
jmp 0x4528a6
push str.alternate_video_count
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4528a6
lea eax, [ebp - 0x204]
push eax
call fcn.004b98c7
add esp, 4
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x2a8], ax
mov edx, dword [ebp - 0x40c]
push edx
call fcn.004b6ca3
add esp, 4
test eax, eax
jne 0x4528d5
push 0x4e4e50
lea eax, [ebp - 0x304]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x4523de
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + ecx + 0x2b0]
test eax, eax
jne 0x452909
mov ecx, dword [ebp + 0xc]
add ecx, 0x2b0
push ecx
mov edx, dword [ebp + 0xc]
movsx eax, word [edx + 0x29a]
push eax
call fcn.00456a10
add esp, 8
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x40c], 0
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret